前回に引き続き、12月から受講していたGCI 2019 Winter(東京大学グローバル消費インテリジェンス寄付講座)の後半を振り返っていきたいと思います。
今回は、その2として、後半戦(第5回~第6回の講義)からコンペティション、最終課題までを振り返っていきたいと思います。
応募から前半戦(第1回~第4回の講義)までの振り返りは前回記事をご参照ください。
講義~その2~
1.第5回(1/29)機械学習の基礎(教師あり学習)
第5回目の講義は、機械学習の全体像として、教師あり学習、教師なし学習、強化学習とは何ぞやからはじまり、「教師あり学習」について掘り下げました。
重回帰、ロジスティック回帰、決定木やK-nn、SVMなど様々な教師あり学習のモデルに取り組みました。
最終的に総合問題で、いろいろなデータセットに対して、どのモデルが一番良いスコアになるかを検証することで、「どんなデータに対しても、一番良いモデルになるモデルはない」というノーフリーランチの定理を身をもって知ることができます。
2.第6回(2/5)機械学習の基礎(教師なし学習)
第6回目の講義は、「教師なし学習」としてクラスタリングと主成分分析から、マーケットバスケット分析に取り組みました。
クラスタリングと主成分分析は、E資格受験時に学習していましたが、マーケットバスケット分析(スーパーのレジ籠の中身から商品購入の関連性を分析する)や、アソシエーションルール(その分析結果で得られる商品の併売ルール)など、よりビジネス目線での活用方法について学べたのは非常に有意義でした。
後半戦の宿題になってくると、値の意味(用語も含め)を理解して使えるようになるだけでなく、Pythonでの条件の設定や、集計の方法なども必要になってきて、総合的な力が鍛えられました。
3.第7回(2/12)モデルの検証方法とチューニング方法
第7回目の講義は、モデルの評価と精度を上げるために、評価指標や、検証方法について学習し、バギングや、勾配ブースティングなど精度向上手法も学習しました。
この辺りになってくると、KaggleやProbspaseのコンペティションで試行錯誤していた内容について、理論的に学ぶことができて、「そうだったのか!」の連続でした。
また、このころからは宿題はなく、学習した内容は、並行して実施していたコンペティションで、試していくことになります。(コンペティションについては後述します。)
4.第8回(3/4)データサイエンティスト中級者への道
第8回目の講義は、最終回として今後必要になってくるであろう深層学習などの機械学習の話題から、Pythonの高速化手法、数学的手法などの紹介でした。
このころは、最終課題に絶賛取り組み中で、さらっと眺める程度にとどまってしまいました。
キーワードとしては、確率的勾配降下法、誤差逆伝搬法、Numba、Cython、PySpark、SparkSQL、MCMC、階層ベイズ、実験計画法、Hadoop、FPGA、OpenCV…など、聞いたことある言葉から、初耳の言葉までいろいろな内容がありました。
無事、修了できたので、これからじっくりと取り組んでいきたいと思います。
講義としては以上になります。
コンペティション
1.コンペティション概要
本講座では、講義のほかに、並行してデータ分析コンペティションが3回、開催されました。
コンペティションの順位は講座の修了条件に含まれませんが、1回目と3回目に適切なデータでエントリーすることと、3回目が基準スコアを超えることが修了の条件になっていました。
コンペティションの形式は、Kaggleと同様の形式で、予測したデータを投稿し、日に3回実施される採点でのPublicスコアを確認しつつ、精度を上げていき、締め切り後に最後に提出されたデータでのPrivateスコアで順位が確定するという形式でした。
Kaggleとは違い、期間がすごく短いのと、採点のタイミングが社会人には厳しい時間帯(12時、18時、24時)だったので、タイムマネジメントに非常に苦労しました。
2.コンペティション1(Titanic: Machine Learning from Disaster)
一回目のコンペティションは、Kaggleでお馴染みの「Titanic: Machine Learning from Disaster」でした。
こちらは、言わずと知れた機械学習の”Hello Woald"的な存在です。
講座からもチュートリアルが提供されるので、初心者の方でも取り組みやすい内容になっていると思います。
私も、Kaggleに登録したときに軽く取り組んだのみだったので、ほぼ一から取り組む形となりましたが、チュートリアルを読みながら簡単に取り組むことができました。
3.コンペティション2(Red Wine Quality Prediction)
二回目のコンペティションは、機械学習・データ分の説明でよくつかわれる、ワインの成分データとワインの評価(0-10の11段階)が含まれるデータセットを使ったコンペティションでした。
二回目からは、チュートリアルもなく一から取り組む形となります。
本職の業務がピークを迎えていたこともあり、なかなか時間をとれませんでしたが、特徴量作成→モデルの作成→評価→チューニング→アンサンブルの流れは、他のコンペティションと変わらないので、なんとかそれなりの結果を残せました。
また、私はお酒は全く飲まないのですが、ワインの品質に関するドメイン知識を調べたりするのは、楽しかったです。
3.コンペティション3(PUBG Finish Placement Prediction)
三回目のコンペティションも、Kaggleで実施された「PUBG Finish Placement Prediction」でした。
内容としては、 オンラインで実施する戦場ゲームでの実績データ(敵を倒した数や、移動した距離など)から、プレイヤーの勝率を予測するものでした。
このコンペティションは、ただ提出するだけでなく、ある一定の基準値をクリアしないと講座の修了基準を満たせないので、かなり力をいれて取り組みました。
結果、基準値もクリアし、順位としても上位に食い込むことができました。
最終課題
1.最終課題概要
最終課題は、これもまた過去のKaggleのデータを用いるのですが、機械学習の実装が目的ではなく、データのオーナー企業(実在)の事業提案を行うというものでした。
機械学習のアプローチを用いることと、提案先の役員は機械学習の知識がある人はいないという、一見、相反する条件の中で、事業提案をしなくてはならず、なかなかに困難な課題でした。
基本に立ち戻って、オーナー企業のホームページから企業の情報を収集し、戦略を立てたうえで、どう機械学習に紐づけていくかを考えて目標設定をしました。
目標設定をしたあとは、今回の講座で得た知識をフル活用してモデルを作り上げました。
一番苦労したのは、できたモデルで得られる効果(ベネフィット)を、提案先にどうやって説明すればわかりやすく説明できるかという点でした。
四苦八苦しながら、何とか、期限までに作り上げることができ、修了基準も満たすことができたので、一安心でした。
おまけ
講座やコンペティションのほかに以下のようなメリットもありました。
1.Slack
受講生だけが参加できる、Slackのワークスペースに招待されて、受講者同士のディスカッションや、講義外にも情報交換が行えました。
いろいろなバックボーンを持った方のご意見等を拝見することや、受講生同士の相互支援ができるようになっていて、とても良いツールだと思いました。
2.もくもく会
東京大学の教室で、もくもくと勉強したり受講者同士で意見交換をしたりする場も提供していただけました。
Slackでも議論はできるのですが、やはり実環境でいろいろと意見交換できる機会があるのは非常によいと思いました。
また、東京大学の教室内に堂々と入れる機会もなかなかないので、とても良い経験になりました。
3.修了生懇親会
延期となってしまったのですが、修了生だけが参加できる「松尾先生による特別講義+懇親会」が予定されています。
何度か挫折しそうになったときにも、この特別講義に参加することをモチベーションとして修了にまで漕ぎつけたといっても過言ではないほど、とても楽しみにしています。
まとめ
今回のような大学で実施される講座に参加するのは、初めてだったのですが、理論から実践まで体系的に習得できる素晴らしい講座でした。
また、コンペティションにおいてもすべて上位に入ることができ、それなりの結果を残すことができました。
E資格を取得された方や、これから取得される方にも是非受講いただきたい内容でした。
これからもこのような機会があれば、是非受講させていただきたいと思います。
|
2019年8月31日(土)にE資格を受験して、合格しました!
E資格対策として勉強の進め方や、参考書などをまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
2019年3月9日(土)にG検定を受験し、見事合格できました!
受験の体験記や勉強法などを別のブログにまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
【E資格対策に使った参考書】
- 人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [ 松尾豊 ]
- 深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト (EXAMPRESS) [ 一般社団法人日本ディープラーニング協会 ]
- 徹底攻略ディープラーニングG検定ジェネラリスト問題集 [ 明松真司 ]
- 実践機械学習システム [ ウィリ・リチャート ]
- アルゴリズムクイックリファレンス 第2版 [ George T. Heineman ]
- 深層学習【電子書籍】[ 岩澤 有祐 ]
- 入門Python 3 [ ビル・ルバノビック ]
- PythonによるWebスクレイピング 第2版 [ Ryan Mitchell ]
- Think Stats第2版 プログラマのための統計入門 [ アレン・B.ダウニー ]
- 集合知プログラミング [ トビー・セガラン ]
- ITエンジニアのための機械学習理論入門 [ 中井悦司 ]