いま話題のディープラーニング。ブラウン大学の「深層学習」の課題を紹介します!
みなさん元気にしていますでしょうか? アメリカのブラウン大学に留学中のKentaです。
ブログ記事を書くのが久しぶりになってしまいましたが、人生で一番努力し、苦しんだであろう2年生の秋学期を無事に終えました。
記事を書くのが久しぶりになってしまったのは、毎日が忙しすぎて、まとまってブログを書く時間がとれなかったからです、すみません。
これから数記事にわたって僕の2年生の秋学期を振り返っていきましょう。この記事と次の記事では、僕が履修した科目とその内容を紹介したと思います。
ブラウン大学での授業がこんな感じなのか、というのを察していただければ幸いです。
RNNを使って生成した文章
コンピュータのクラスを3つも!
僕が今学期に履修した科目は
- Intermediate Chinese (CHIN 0300)
- Introduction to Software Engineering (CSCI 0320)
- Introduction to Computer Systems (CSCI 0330)
- Deep Learning (CSCI 2470)
です(カッコ内は科目番号)。
というわけで、今学期にはコンピュータサイエンスの科目を3つもとってしまったのです。
とくにCSCI 0330とCSCI 0320を同時にとるのは狂気の沙汰だといわれるのに、僕はそれらに加え、深層学習(Deep Learning)も履修してしまったのです。これで少し、記事執筆が空白になった4か月の説明がついたと思います(笑)。
今回の記事では、中国語のクラスと深層学習のクラスについて話したいと思います。
中級中国語 Intermediate Chinese 300
この科目は中級中国語で、1年生のときにとった中国語の科目の延長となっています。
まず去年と違ったのは、授業が完全対面になったことです。
教授3人に対して学生が30人弱という構成になっていて、1日3セクションに分割されて、好きなセクションに行ってもいいよというスタイルで行われました。
やはり対面授業になると、オンラインと違って、クラスメイトとのペア・アクティビティや教授とのやりとりが増え、授業がとてもダイナミックでおもしろかったです。
文法・単語の質・量ともに増え、ほぼ毎日課題もあったため少し大変でした。最終課題は10分のスキットを作成しました(スキットについてはこの記事を参照してください)。
深層学習 Deep Learning
この科目は、日本語でいう「深層学習」の分野をカバーする科目です。
今学期とった科目の中で、「楽しさ・新しさ」でいったら一番に君臨するくらいおもしろい科目でした。
すべての課題は、神経ネットワークを使って行われました。神経ネットワークとは簡単にいえば、複雑なインプットとアウトプットをつなげる関数のようなもので、何千何万にもわたる引数で成り立っています。
それを踏まえ、以下がコードを書く宿題で僕が実装したものです。
1. MNIST Digit Classification
この課題は一番単純なもので、簡易的な神経ネットワークを使って、モデルに1万枚の手書きの数字の画像と、それに対応する答えをインプットして訓練します(モデルは私たちと違い、どの画像がどの数字にあたいするか訓練するときに知る必要があるため)。
その後に、訓練データとは別の手書きの写真をモデルにインプットして、モデルがその数字をあてることができる確率を高めるといったものです。
2. Convolutional Neural Network
この課題は、簡単にいえば画像認識モデルの実装です。ことを簡単にするため、今回は犬と猫の写真の区別でした。
神経ネットワークを使うのは同じなのですが、少し違ったのは神経ネットワークに代入する前に、Convolutional Layerという畳み込みネットワークを使うことです。これによって画像の重要なピクセルを抽出して僕のモデルがそれをもとに、区別をつけることが可能になります。結果的に80パーセントの確率で区別をすることができました。
3. Trigram & Recurrent Neural Network
みなさんはMicrosoft WORDなどを使ったときに、自動的に単語が予測される機能を目にしたことがありますか? この課題はまさにそれをカバーした感じです。
インプットして50万行の文章をモデルに入れ、それで訓練します。訓練後には何でも好きな単語を1語入れるだけで、モデルが文章をアウトプットしてくれます。冒頭の写真がその様子です。
4. Transformers
この宿題は一番の僕のお気に入りで、簡潔にいえば翻訳モデルの実装です。
今回翻訳した言語はフランス語から英語でした。文章予測モデルと似て、この課題ではモデルへのインプットとしてフランス語の文とそれに対応する英語の文を入れます(これも70万文くらい)。
複雑になってしまうので簡単に説明しますが、このTransformersというモデルの特徴としてあるのが、このモデルを使うと一単語と他のすべての単語の関係をとらえられるということです。ですので、このモデルが翻訳にもってこいというわけです。
5. Variational Autoencoders
この課題も非常にユニークでした。というのも、いままでの宿題で実装したモデルというのはアウトプットがけっこう小規模なものでした(画像認識の例でいえば犬か猫かの二択)。
この課題でのゴールは、インプットは手書きの数字(1つ目の課題と同じ)なのですが、その数字特有の確率分布を求めるというもの(ガウス分布)。
この確率分布がわかれば、訓練後のモデルに無作為のインプットを入れると、それに対応する確率分布内の数字の画像をアウトプットすることができます。モデルが画像を自分で作成するというわけです。
6. Reinforcement Learning
作成したモデルがゲームをしている様子
最終課題としてあったのが、最近人気の強化学習でした。
強化学習というのを簡単に説明します。
定義としてはまずモデルであるエージェント(agent)がいて、そしてそのエージェントがいる環境(environment)があり、その環境内でエージェントは複数のアクションを行うことができます(マリオを例にすると、跳ぶ・しゃがむ・前進する、など)。
そしてエージェントがその行為を行った後に、報酬(reward)を与えます。マリオの例を続けると、もしマリオが「跳ぶ」という行為の結果、巨大化キノコを獲得したら、+1の報酬を与えます。
この一連の流れを繰り返して、モデルは報酬を最大化できるような一連のアクションを求めるというのが強化学習です。
今回の課題では、一番スタンダードの実装であるCart-Pole(平行移動可能な台の上に立つ棒が落ちないようにバランスするプログラム)を行いました。
これらの課題を終えた後に残ったのが最終課題です。
僕は院生向けのクラス(深層学習の科目番号には1470と2470があり、後者が院生向け)をとったので、いままで実装されていなかったものに取り組む必要がありました。4人グループで話し合った結果、以下のアイデアに決まりました
強化学習を使って、Atariがリリースしている複数のゲームでいいパフォーマンスを残すことができるモデルを実装する。
チェスにおいて人間を超えるモデルはあるけれど、チェスと囲碁の両方において人間を超えるモデルはまだないんじゃない? ということです。
結果的には50時間くらいこの最終課題にかけましたが、僕たちが満足できるようなモデルには一歩届かずでした。でも、2つのゲームにわたってそこそこの結果を残すモデルの実装には成功しました。
ものすごく余談になりますが、僕たちのグループは最終課題を始めるのを先延ばししすぎて、締め切り2日半前から始める羽目になってしまい、ほぼ睡眠なしでがんばって終えました(笑)。
みなさんも課題は、早め早めから始めましょう。
いままで「これどうやってできるんだろう」と抱いていた疑問が、深層学習のクラスを履修し終えて半分くらい解消された気がします。
Google翻訳(Transformers)、Google Docsの単語予測(RNN/Transformers)、Photoshopの背景変換(Variational Autoencoder)、チェスチャンピオンを破ったAIモデル(Reinforcement Learning)などなど。
小規模ではあるものの、自分の手でこれらの機能をもったモデルを実装できたのは少し誇らしいし、いい経験にはなったのかなと思います。
次回の記事では、Computer Systemsのクラスと Software Engineering のクラス、そして来学期履修予定のクラスを紹介したいと思います。
今回もお読みいただきありがとうございました。
Kentaくんの記事一覧
- 第1回 どうしていま、アメリカの大学に留学するのか?
- 第2回 留学先としてリベラルアーツ・カレッジを選んだ理由
- 第3回 まさか!? ブラウン大学から合格通知が!
- 第4回 アメリカの大学受験。「僕はこういう人間」と伝えるために
- 第5回 100%の自分自身を表現。アメリカの大学への出願エッセーの書きかた
- 第6回 アメリカ大学受験のカギを握る「推薦状」と「大学個別のエッセー課題」について
- 第7回 いよいよ渡米! 2つのスーツケースと共に、ブラウン大学に向けて飛び立ちます!
- 第8回 ついにブラウン大学に到着! 入寮からPCR検査まで
- 第9回 PCR検査は週に2回。ブラウン大学の隔離生活
- 第10回 ブラウン大学の日常。寮生活から勉強、週末の過ごしかたまで
- 第11回 ブラウン大学で初の期末試験! 次の学期にとる科目も思案中
- 第12回 ブラウン大学の期末試験。何が問われ、どれだけの勉強が求められるのか?
- 第13回 寝ずに勉強! 留学して初の期末試験。その結果は?
- 第14回 ブラウン大学生活の余暇。ボストンへ! ニューヨークへ!
- 第15回 ブラウン大学の夏学期。今期の履修科目を紹介します!
- 第16回 コロナが収束しつつあるブラウン大学。普通の学生生活が戻るか?
- 第17回 ブラウン大学1年生を締めくくる期末試験。その内容を科目ごとに紹介します!
- 第18回 ブラウン大学で1年を終えて。来年度に向けて寮と科目を選びました!
- 第19回 ブラウン大学の1年度が終わり、夏休みに向けた準備を開始!
- 第20回 ボストンからオレゴンへ。鉄道でアメリカ横断の1人旅
- 第21回 オレゴン州ポートランドのホストファミリーと再会! アメリカの「家族」のありがたさを実感
- 第22回 オレゴンからロス、そしてミシガンからボストンへ。夏休みも終わりです
▼ 読むだけでアメリカ留学に役立つ資料をお送りします。▼
12/21
しっかり分かる
留学講演会
>
まずは
資料請求
>