ITと哲学と

IT系エンジニアによる技術と哲学のお話。

機械学習のコースを修了した

Stanford大学のオンライン授業で機械学習コースを受講していましたが、この度めでたく修了しました。

機械学習をお勉強したい人には強くお勧めできる内容だったのでアウトラインだけ共有しようと思います。

ちなみに受講自体は無料です。 終了証明を取得したい場合はお金かかりますが、完全に自己満なのでどっちでもいいかと思います。

概要

機械学習の世界では知らない人はいない(?)というくらい有名な先生がわかりやすく機械学習の面白いところを教えてくれる動画授業です。

各動画には小テストがあり、自身の理解度を確認しながら進めることができます。

週に1トピックスの内容を学ぶスケジュールでコースは設計されており、1週間分の動画を全て見た後にはoctaveという言語を用いて実際に学んだ内容を実装してみるプログラミング課題を解きます。

動画授業を受けるだけではなく実際に手を動かしてみるので、理解度が上がります。

学習できる内容

毎週のトピックはざっくり以下の通りです。

線形回帰について

コース全体を通して使われる基礎的な考え方が説明されます。 コスト関数とか最急勾配法とかの説明がされます。

ロジスティック回帰について

線形回帰から派生してロジスティック回帰についてです。 線形回帰で扱えない問題の説明と、それを扱うためのロジスティック回帰の説明です。

ニュラルネットワークについて

今はやりのDeepLearningにつながるニューラルネットについてです。 ニューラルネットのアイディアの説明と、ロジスティック回帰との関連性についてわかりやすく説明されています。

機械学習を用いたシステムを開発していく時の注意点について

機械学習を用いたシステム開発を行う上で身につけておくべき考え方や評価指標についてです。 これを知らないでシステム開発を行うのは時間の浪費だとはっきり理解できる構成になっています。

具体的には学習曲線を用いたアルゴリズムの評価方法を学びます。

自身の構築しているシステムについて、アルゴリズムが適切なのか?学習モデルは適切なのか?学習サンプルを増やすことで性能改善が見込めそうか?それとも学習サンプルを増やしても別の問題が起きているので性能改善が見込めないのか?といった知見を得られるようになり、次に試すべきことが判断できるようになります。

SVMについて

ロジスティック回帰から派生してSVMについてです。 SVMの利点とかが説明されます。

教師なし学習(クラスタリング)について

教師なしデータに対する機械学習の例についてです。 得られたデータをクラス分けする方法を学びます。

具体的にはk-meansアルゴリズムを使ったクラスタリングを学びます。

異常検知学習について

こちらも教師なしデータについての機械学習です。 「いつもとなんか違う!」を検出する方法を学びます。

具体的には得られているデータから事象の確率を求め、 異常に低い確率でしか発生しないデータが得られたら「いつもと違う!」と判定するようなアルゴリズムについて学びます

大規模機械学習について

大量データを扱う上での注意点とかそこらへんのトピックスが説明されます。この内容についてはプログラミンング演習はありません。

Photo OCRを例とした機械学習ワークフローについて

複数の機械学習コンポーネントを組み合わせて開発を行う上でいかに全体最適を満たすために開発リソースを割り振っていくか?というないようです。

大きくて複雑なシステムを効率良く開発していくために必要な知見が得られます。

まとめ

以上長くなりましたが、こんな内容を学ぶことができます。

高度な数学的な背景は知らなくても理解できる講義になっているので興味のある方は是非受講してみてください!

ちなみに最後まで受けると有料ですが、受講証明書をもらうことができます。 完全に自己満ですが、かなり良いコースだったのでお礼の意味も込めて取得しました。