2019年9月14日(土)に、タイトルのセミナに参加したので、レポートがてらポストしてみる。結論としては、ニューラルネットワークとかディープラーニングの基礎の基礎を、手を動かしながら学ぶことができて、とても勉強になった。
予習したこと
- ディープラーニングの触り
- ニューラルネットワークの触り
- Chainerの触り
- Colabの触りと少し動かした
特に、ニューラルネットワークは、設計>訓練>評価という流れで構築していく、ということが分かってよかった。(う〜ん、どれだけ初心者なんだ、、、と思いつつ、初心者だから参加するんだよね、と自分を励ましつつ参加)
やったこと・キーワード
- 分類と回帰、与えられた情報から予測するのが回帰
- 線形変換と非線形変換
- ニューラルネットワークの手計算、順伝播播
- パラメータをランダムに決める
- 損失関数を計算する
- パラメータを調整する(←機械学習の「学習」とは、コンピュータによるパラメータの調整を指す)
- 人間の得意なことと、コンピュータの得意なこと。それぞれ得意なことを分担する。
- 訓練データ、検証データ、テストデータ
- 訓練データと検証データで繰り返しパラメータの調整。人間が調整するパラメータをハイパーパラメータと言う
- テストデータは最後の評価として1回だけ使う
- 目的関数(損失関数)、代表的なものは「回帰→平均二乗誤差」で「分類→交差エントロピー」
- エントロピー(情報量)は、意外なものの方が多い。例えば「コンビニの店員が外国人」は今や当たり前なので情報量が少なく、「コンビニの店員の身長が2m30cm」はあまりないので情報量が多い。
- 学習率はハイパーパラメータ、人間が調整する
- batch size(バッチサイズ), epoch(エポック), iteration(イテレーション)
振り返り①:座学は優しい(初心者でもOK)
座学は初心者でも分かるような内容で楽しかった。何となく「あぁ、こういうものなんだな」と分かった気になった。
振り返り②:演習はなんか難しい(初心者は苦しいかも)
ただ、演習に入るといきなり難易度がUP。理由などは以下のとおり。
- 座学は難しいことをすごくシンプルにして教えてくれるので分かった気になる
- が、演算は実際にコーディング作業が少しだけ入る。もちろん、99%が出来上がっているコーディングが配布されて、一部のパラメータ、上記でいうハイパーパラメータのみをいじればほぼOKだが、座学のシンプルさとはかけ離れて、かなり実践的な内容だしユーザIFだったのでついていくのに必死
- で、結局「このハイパーパラメータを変えるときっとこうなる」という仮説も立てることができなかったので、なんかおもしろくない、理解できない。
- ということで、座学で分かったつもりになっていて実は分かっていなかったことが浮き彫りにできたし、損失関数とかパラメータとか順伝播とかそういった専門用語の理解が進んだ
- 予習をしておいたので、少しはマシだった気がする。もっと丁寧に予習しておいた方が良い。何にでも言えることかもしれないが…。
振り返り③:ColabとPython、ディープラーニングの勉強
Google Driveとの連携ができて、ブラウザ上で教科書(主催者側が用意)のソースコードを実行しつつ、自分でアレンジして実行しつつ、セミナを受けることができたのは、各自のペースでハンズオンの学習効率の高い、とても良い進め方だと思った。
振り返り④:ノートは用意しておくべし
事前連絡で、紙かノートを用意しておくこと、とあったし、当日、紙とペンの配布はあったけど、圧倒的にノートの方が良いと思った。理由は、結構書くから。
ノートの方が、保存がきくし、枚数が増えても綴られているから気にならない。ノートは必ず持参すべし。
結論
ディープラーニング初心者(基本知識なし)では少々厳しい感じがするが、個人的には有意義なセミナーで、ぜひ、今後も継続して受講したいと思った。きっと、自分の勉強の張り合いにもなる。知り合いもできたし、継続して勉強していく。
ピンバック: 「福岡 DLLAB Academy: 3時間で入門ディープラーニング」参加のその後。 | hiro-lab
ピンバック: 2019年の振り返り②(Technology編) | hiro-lab