Slide 1

Slide 1 text

きちんと性能評価 〜にわかと言われないために〜 (株)アカツキ エンジニア 宮島 亮 @sergeant-wizard

Slide 2

Slide 2 text

はじめに - 基礎的な機械学習の内容です。勉強してる人ごめんなさい。 - にわかである私が犯したミスの話です。 - ブームに乗っかったつもりで変な解析が乱立するとTensorFlow()状態に! という自戒を込めた発表です 防御率等の成績から年俸を推定する回帰問題

Slide 3

Slide 3 text

自己紹介 - 宮島亮 @sergeant-wizard - ゲーム会社のエンジニア - Data Scienceにまつわる業務に携わるために機械学習まわりを勉強中 - 主にQiitaに出没中

Slide 4

Slide 4 text

今日お伝えしたいこと - TensorFlowの公式チュートリアル通りの流れで他の問題の解析をすると・・・ - ハイパーパラメータのチューニングで「ズル」してしまうかもしれないのでご注意を。 - チュートリアルではハイパーパラメータが既に与えられているが、実際の解析では チューニングが一番大変。

Slide 5

Slide 5 text

学習能力、汎化能力 - 真の分布は1次関数 + ノイズ - 3次関数: 学習能力低、汎化能力高 - 9次関数: 学習能力高、汎化能力低 - ほとんどの場合、汎化能力が高くないと意味がない - ニューラルネットワークは、学習が進むにつれて 次数が上がっていくイメージ:過学習

Slide 6

Slide 6 text

データセットの分け方 - Training Data Set : 学習に使う - Test Data Set : 汎化能力を見るのに使う - Validation Data Set : ハイパーパラメータのチューニングに使う

Slide 7

Slide 7 text

ニューラルネットワークのハイパーパラメータ - 学習回数 - 学習係数 - 重み減衰係数 - モメンタム係数 - ネットワーク構造 - ...etc このグラフを見ながら、「ここで学習をやめました」はズル!

Slide 8

Slide 8 text

データの分け方も色々 - プロ野球選手の年俸査定の記事では、 全データ94選手、うちTraining Data Setが89選手、Test Data Setが5選手 - ホールドアウト法 : もっともナイーブな方法 このデータの分け方の任意性のモヤモヤを解消するために・・・ - 交差確認法 - 一つ抜き法 - ブートストラップ法 詳しくはこちらの記事にて

Slide 9

Slide 9 text

まとめ - 学習能力と汎化能力は違うもので、 ニューラルネットワークではトレードオフになりやすい - 一般に機械学習ではTraining Data Set、Test Data Setで区別される - ニューラルネットワークではハイパーパラメータのチューニングのためにValidation Data Set が使われることがある - ハイパーパラメータのチューニングでTest Data Setを使うのは「ズル」 - データをどう分割するかも重要

Slide 10

Slide 10 text

マサカリお待ちしております - Facebook : Ryo Miyajima - Twitter : @sergeant-wizard - GitHub : sergeant-wizard - Qiita : sergeant-wizard

Slide 11

Slide 11 text

参考資料 - Hugo先生のNeural Networkの講義 - はじめてのパターン認識 - 問題の記事:プロ野球選手の年俸査定 - より深掘りしてる記事: 機械学習の性能評価