機械学習(1) - スタンフォード大学の講義から


こんにちは、馬場です。

1月より研究開発グループの一員として活動していますが、日々感じること。それは私にはコンピュータサイエンスの基礎知識が足りない!

そこで、この場を借りてきっちり勉強したいと思っています。テーマは機械学習。ちょうどcoursera で機械学習が開講中。その内容や感想などをまとめていきます。(ここまで自分を追い込めばさすがの私も勉強するでしょう)

coureseraは世界の大学の講義を無料で提供するWebサービス。講義の動画だけでなく、小テストやプログラムなどの課題や受講者同士のコミュニケーションの場も提供しています。

今回は、第1週、第2週の内容のまとめです。

1. イントロダクション

講義は、機械学習とはなにか、簡単な紹介から始まります。

機械学習は、今や「必要なITスキル12」のトップにあげられるような重要な技術です。機械学習により、コンピュータに新たな能力が加わりました。
また応用範囲も、手書き入力などのインタフェース改善や医療分野など幅広いです。

その後、機械学習の代表的なアルゴリズム、教師あり学習と教師なし学習について、例を交えて紹介しています。教師なし学習の応用例として、「カクテルパーティー問題」というのを取り上げていました。パーティのような人がいっぱいいるところでは目の前の人の声が雑音にかき消されて聞こません。そこで、教師なし学習のクラスタリングアルゴリズムを適用すれば、特定の人が話す声だけを抽出することができます。実験では2人同時に話している音声データにアルゴリズムを適用して、一人一人の話す声に分離していました。すごい!そのわりにプログラムが1行でさらに驚きました。

もうひとつ印象的だったのは、以下の言葉です。

アルゴリズムを知っているのと使いこなすのには、大きなギャップがあります。この授業では、様々なアルゴリズムを紹介するだけでなく、どう使うかも、教えます。

はい、がんばります。

2. 1変数の線形回帰

教師あり学習の場合、以下のようにモデルを構築し、新しいデータでの結果を予測します。

最初のアルゴリズムでは、変数がひとつの線形回帰について取り上げていました。線形回帰はモデルを直線と仮定しています。そしてどういう線を引いたら実データに近い形になるのか計算する方法として「最急降下法」を紹介していました。パラメータを少しずつ変化させて学習データとの差が最小となるパラメータ(直線の位置と傾き)を探っていくのですが、欲張っていっぺんにパラメータを変えると収束せず、小さくとるとなかなか最小値が求まらないというところに人生を感じました。

3. 線形代数の復習

基本的なベクトルや行列の計算についてです。懐かしいです。

4.多変数の線形回帰

多変数の線形回帰モデルを解く方法として、最急降下法のほかに正規方程式も紹介していました。

5. Octave チュートリアル

最後はこの講義でつかうプログラミング言語 Octaveについての説明です。この講義のプログラミング課題はすべてこのOctaveで作成することになっていますが、機械学習などに特化した面白い言語でした。

ただOctaveの実行環境をmacにインストールするところでつまづいてしまいました。結局できずにWindowsを引っ張りだしてきました。Lionにはインストールできないみたいです。提出直前にあたふたしてしまったので、ここは余裕をもって取り組むことをお勧めします。

感想

講義自体内容もわかりやすいし、Andrew 先生の英語もゆっくりでききとりやすいと感じました。

また、本当に久しぶりに講義を聞いて、小テストして、プログラミング課題があって、課題に締め切りがあって、点数がつく、ということを体験しました。新鮮でした。というか、こういう形式の学校の勉強ってほんとゲーム的だなと、ゲーミフィケーションの本を斜め読みした直後なので感じました。次もやりたい、点数とるぞー、となるので、考え方などを勉強するのにこの方法はいいと思いました。でも大事なのは「手に入れた道具をつかって何をつくるか?」ですよね。学校教育の過程で問題や課題を設定するという訓練をほとんど積んでなかったので大学入った頃から本当に苦労した(今も苦労している)ので、その辺も学校教育でカバーしてほしいです。。

この調子で最後まで受講します!


This entry was posted in 技術. Bookmark the permalink.