先日、 GCI 2024 Summer の修了証を受け取り、無事修了生になることができた。
そこで今回は、私の GCI 受講から修了までの流れをまとめてみたいと思う。n 番煎じ...
GCI とは?
そもそも、 GCI とはどのような講座なのか。
グローバル消費インテリジェンス寄付講座では、世界規模で高い消費インテリジェンスを発揮してビジネスを動かすことができる CMO (Chief Marketing Officer) を育成します。 グローバルな消費に関するデータが急速に増えている中で、データ分析を通して消費者・生活者を理解する能力が国や企業としても必要とされています。 この問題意識から、東京大学に世界最先端のプラットフォームを創設して、人材育成および学問分野の確立を加速化しようという狙いです。
つまり、ただ数理的なデータ処理の技術を身につけるだけではなく、それをビジネスシーンにどう生かしていくかを主眼とした内容ということらしい。
受講のきっかけ
高校生の頃から私は機械学習の1つの分野である強化学習 (特に深層強化学習) に興味を持っていた。ただ、強化学習一辺倒で、残りの教師あり・教師なし学習についてはとんど知らない状態、でいたくなかったというのが大きい。大学は情報系に進み、将来的に研究で必要になりそうというのもあって、大学1年でまだ時間に余裕のあるうちにデータサイエンス方面の知識と実践の経験が欲しかったのだ。
受講前のステータス
- プログラミング経験は4~5年ほど。 AtCoder に C++ で挑戦中。
- 基本情報技術者の資格アリ (合格したのは高校生のときなので、一部知識がおぼろげになってる)
- PYthon は基本的な文法は理解しているレベル。データサイエンス用のライブラリを使っての開発経験はなし。
受講までの流れ
GCI の Web ページから、現在募集されている講座を確認することができる。
GCI は1年で Summer (4~8月) と Winter (10月~1月) の2回開講される。基本的な内容はどちらも同じだと思う。
募集は大体1か月前から始まっているので、忘れないようにこまめにチェックしておこう。 東大松尾・岩澤研の Twitter (X) アカウントでも告知がされているので、フォローしておくとよいかも。なお、学生枠については1週間~2週間程度募集期間が延長される傾向にある。
応募の際には、学生の場合は学校のEメールアドレス等が必要になるので注意。また、簡単な応募動機も書くことになる。
応募後、1週間ほどで選考の結果がメールで通知される。よほどのことがない限り選考に落ちることはないと思われる。聞いたところによると、今回の参加者は約4000人ほどらしい。そう、門戸は広いのだ。
講座内容
- 講座申し込み
- 次週の講義の予習
- オンライン講義の出席または講義動画の視聴
- 宿題・出席アンケート (リアクションペーパーみたいなもの) の提出
- コンペへの参加
- 最終課題の提出
- 修了通知の受け取り
が主な受講の流れ。このうち 1 ~ 3 が基本的な1週間の流れとなる。また、 3, 4, 5 が修了要件である。
通常講義
講座は1週間に1回分の講義があり、 オンラインで受講することになる (Zoom ミーティング形式) 。時間帯は平日の19時前から20時半過ぎといったところ。しかし、リアルタイムで参加することができなくても、講義日から1週間後までは講義の録画が配信されるため、予定等があっても安心。実際、私は講義日に大学の授業が5限まで入っていたので、日によってはリアルタイム参加できないことが何回かあったが、無事に修了することができた。
講義では Google Colaboratory 上で配布される Python サンプルコード付きの資料を主に使っていく。ローカルで環境構築をする必要はないので楽。
この資料の中には宿題用の問題も用意されており、この問題を解くことで講義内容の理解とその演習をすることができる。なお、宿題は講座の前半までで終了し、以降はコンペと最終課題に取り組むことになる。
講義内容としては、初めに Numpy や Pandas 、 Matplotlib といった、データ分析に必要な Python ライブラリの使い方や SQL (データベース操作) を学習した後、教師あり学習と教師なし学習に関連するライブラリを学び、機械学習モデルの制度の評価方法や特徴量エンジニアリングといった内容を前半で扱う。ここまでの内容で、後述するコンペ1, 2は最低限取り組めるだろう。
なお、受講開始時に事前学習として Python の基本的文法を学べる教材が配布されるので、 Python 未経験の人は自習が必要となる。 GCI 講義内では Python の基礎内容については触れられないので注意。
講義後半では、後述の最終課題への導入として、 AI 技術のビジネスシーンへの活用例を知り、因果推論やマーケティングの基礎といった内容を扱う。また、ゲスト講師として、現役のデータサイエンティストや機械学習関連のベンチャー企業の方から、現在の AI 技術のトレンドなどの話を聞くことができる。
リアルタイムで講義を受講した場合は、講義時間中にフォームから授業内容に関する質問をすることができ、授業後1週間以内までに講師または TA の方から回答がもらえる。
コンペ
全15回の講義の中で、計2回の「コンペ」なるものが開催される。これは、これまでの学習内容を基に Kaggle 形式の課題に挑戦して、そのスコアを競うというものだった。
コンペ1 : Titanic
Kaggle のHello World
的な存在と言われるほど有名な問題 Titanic を、一部改変したものが課題として設定された。GCI 側からもチュートリアルの資料と Python コードが提供されるので、 Kaggle 未経験の私でもそれを読みながらこなすことができた。
とりあえずチュートリアルをもとにモデルのパラメータを弄るといった試行錯誤をした結果、 1752 人中 384 位となった。初めての実戦にしてはまずまずの順位だったかなと。あれ?なんだか母数が少ないような...
コンペ2 : Home Credit Default Risk
2018年に開催された Home Credit Default Risk を一部改変したものが課題として設定された。今回もチュートリアル資料が提供されたが、これをただなぞるだけではあまりいいスコアは期待できない。私は、主に LightGBM という方法を駆使して特徴量を分析する手法をとったが、これがうまく刺さったようで、最終的な順位は 1415 人中 26 位。惜しくも成績優秀者とはならなかったが、試行錯誤の結果がうまくスコアに反映されたときの達成感は大きかった。
最終課題
IT コンサル会社の新人アソシエイトとして、「機械学習を用いてデータ分析を行い、分析結果からその会社独自の課題を設定、これを解決する事業の提案を行う」という PoC の案件を請け負ったという想定で、実在の企業がオーナーであるデータセットが提供されるので、その分析を行うことでクライアント企業固有の課題を提示し、その解決のために機械学習を用いた事業提案を行うという課題であった。
データセットは「初学者向けの基本的なもの」「複数の DB からなるもの」「時系列データを扱っているもの」の3種類が与えられ、その中から1つを選んで提出す津ことが求められた。
ちなみに私は時系列データを選んだのだが、講義の中では時系列データの分析に有効な機械学習モデルについてあまり触れられていなかったので、別途講義動画を視聴することになった。
コンペと大きく異なるのは、データ分析の結果を事業提案につなげなければならないこと。まさに GCI の目的に合致する部分だが、これがかなり難しい。
私はいきなりデータ分析を始めるのではなく、まずはデータ提供元の企業の HP や、その企業が属している業界の現状などを調べることで、機械学習とどのような切り口で関連付けていくかの方向性を考えてから分析を開始した。
2回のコンペのおかげか、モデルを構築するのはそこまで苦労はしなかったのだが、完成したモデルが企業にもたらす利益を定量的に説明して、事業提案に説得力を持たせるところが今振り返ると最も難しかったように思う。
講義外でのサポート
講義以外の時間では、過去の GCI 修了生が TA となって受講生からの様々な質問に Zoom ミーティングで答えてくれる「オフィスアワー」という機会が設定されている。授業内容に限らず、宿題やコンペについてのヒント、 GCI への取り組み方のアドバイス等、かなり丁寧に答えてもらえるので、うまく活用するのがおススメ。私も最終課題に取り組む際には色々とお世話になった。
また、受講生が集められる Slack では、受講生間で情報共有を行えるチャンネルが用意されている。結構活発に動いていたので、宿題やコンペ、最終課題で分からないことがあればここで質問してみるのもいいかもしれない。
GCI への取り組み方
GCI への取り組み方は人それぞれだと思うが、最終的に修了を目指すために私が大事だと思ったのは以下の3点だ。
- モチベーションの維持
- 講義内容すべてを一度で理解しようとしない
- コンペや最終課題は計画的に取り組む
まずモチベーションの維持について。大学の講義と違って単位が取得できるわけではないので、中間・期末試験と重なる時期はどうしても GCI の優先順位を下げざるを得なかった。ただ、コンペなどがない講座前半のうちは1週間の中で GCI に取り組む日を設け、その日に集中して講義動画の視聴・宿題の取り組みを一気に行うようにしていた。期限直前にその場しのぎでやっているといつか必ず破綻するなと思っていたので、これは徹底した。毎週最低3時間ほどは GCI に充てていたように思う。
また、全15回の講義で相当量の情報が投下されるので、それらを一度で吸収しようとすると消化不良に陥ってしまうかもしれない。私の場合は最初から一歩引いた形で、「とりあえず頭の片隅に留めておいて、コンペや課題で使う際にもう一度振り返る」というような意識をもって学習していた。今は ChatGPT といった技術もあるので、必要に応じて頼ってみるのもいいかも。
「分からないことは AI に聞いてみる」というマインドを持っておくのも結構重要だったり。
最後にコンペや最終課題についてだが、これは修了要件の一部なのでデッドラインには必ず間に合わせるのが鉄則。その上で、これらは一朝一夕でやろうとせずに (そもそもそんなんで終わらない) 、できる限り毎日触れて進捗を積み上げることを意識するようにするといいと思う。モチベ維持にもなるし。私の場合はコンペは計20~30時間、最終課題は40~50時間ほどかけたように記憶している。
今回の修了生が800名弱で修了率が2割を切っているようなので、やはりコンペや最終課題が関門の1つであることは間違いない。気負う必要は決してないが、修了を目指すのなら意識的に取り組むような自分なりの工夫をすることを勧める。
おわりに
GCI を受講する中で、独学ではカバーできなかったであろう機械学習アルゴリズムの知識と実践的な活用方法を学ぶことができ、応募動機はおおむね達成できたといえるだろう。
先に紹介した通り、講義内容はかなり充実したものとなっているので、データサイエンスや機械学習、またそのような技術の商業的利用に興味があるのなら、受講して損はないと思う。
現段階ではまだ大学1年生ということもあって、今回得た知見をすぐに実務に生かせるわけではない。今後も東大松尾・岩澤研が提供している他の講座を受講して、さらに機械学習の知識を深めていこうと考えている。今気になってるのは来年春の「DL 基礎講座」かな。
最後に、GCI 2024 Summer を修了された同期の方々、本当にお疲れ様でした!