DLLAB Dayのハッカソンに参加してきたよ(実装編)
MicrosoftとPreferedNetworkがメインで活動している日本で最も大きなDeepLearningコミュニテイであるDLLABが主催するイベントのハッカソンに参加してきました。
参加目的は、Chainer触ったことがないから一度触るため。
正直、非常に勉強になった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ハッカソンの内容は2つ。
ポテチのパッケージの写真を見てどのポテチか判別するモデルを作るといった内容と、9名の有名な小説家(夏目漱石等)の文章から作者を判別するモデルを作ると行った内容でした。
私は、ポテチの方で参加。
正直、Chainerはほぼさわったことなく「hogehoge」ではなく「ふぉえ〜」と言おうと、とってもゆるい感じで参加したのだが、繰り返しだが非常に勉強になった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
まず、DeepLeaningのモデル作成は以下の3つが重要だと思っている。
1.データの前処理
2.モデルの選択
3.パラメータチューニング
これをChainerの実装レベルに落とすとこれも3つ重要だと思っていた。
1.前処理をどうするか
2.どういったネットワーク構造にするか
3.最適化手法をどうするか
なので、前処理の方法をどうするかをチームでさっさと決めて、ネットワーク構造と最適化手法のやり方もどうするか、ちゃっちゃと決めにいった。
前処理は画像サイズがでかかったので圧縮&正規化だけして、
ネットワーク構造&最適化手法はサンプルを丸パクリして、「とりあえず回そうぜ〜」と思っていた。
が、これは全然頭が悪かった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
まず、昨今は「転移学習」全盛である。
精度を上げようとする際はファインチューニングをすると良いとなっているそうだ。
そんな頭は全く働かなかった。
また、昨今では訓練データを2つ合体させておくmixupという手法があるそうで、正直全く知らなかった。
そしてさらに、GPUを使うとこんなにも深いネットワーク構造でデータ数が1万あるようなモデル作成が数十秒でできるとは知らなかった。
いや、本当にAIはインフラ命だと改めて思った次第。
【参考】
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
他にも、勉強になったことはたくさんあって、
1.文章データも画像と同じように扱えばいいに決まってんじゃん(CNNはすげー精度がでるため)
2.精度はバリデーションとテストの精度が近い方が良いモデルに決っているじゃん
3.LSTMは金持ちの開発環境
4.モデルのレスポンス時間は重要
5.AzureやらDockerやら
6.画像データを変換した際にデータの並びを変換しないといけない。
などなど。
他にも、聞いて「知らない!」って思ったキーワードで検索すると以下がでてきた。
大変、勉強になった!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
最後に、今後はこちらも定期的に見ようと思った。
キカガクのセミナーとかも受けたい。