アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

courseraのMachine Learning(機械学習)の講義内容まとめ(1〜5講義の概要)

将来的にプログラミングを学ぶ必要がでてきた(主にディープラーニング)ので、courseraのMachine Learning(機械学習)コースを受講しました。
講義内容としては機械学習の基礎を広く理解するためのもので、機械学習でどのような手法が使われているかを紹介しています。機械学習の全体像がわからないという人にはまさにうってつけの講座と言われているこのcourseraの機械学習コース。個人的備忘録ですが、その講義全11講義の概要をまとめておこうと思います。

この記事では1〜5講義までの概要をまとめてあります。
6〜11講義はこちら

✳︎2017年2月時点では、日本語字幕があり、英語が聞きとれなくても学べる環境にあります。

目次
講義1.機械学習の概要
講義2.より複雑な(非線形な)機械学習の概要
講義3.分類問題とロジスティック回帰
講義4.ニューラルネットワーク
講義5.ニューラルネットワークのテクニック

f:id:trafalbad:20170302192742j:plain



講義1.機械学習の概要



概要
講義1では機械学習の全体像を説明しています。
機械学習は普通の複雑な関数からなる問題ですが、それを1次元の関数問題である線形回帰で簡潔に説明。

機械学習は教師ありデータアルゴリズム、教師なしデータアルゴリズムの2つに分類され、ディープラーニングは教師ありデータアルゴリズムに属します。

連続的なデータから数値を予測する「回帰問題」と離散的なデータを特定のカテゴリに分ける「分類問題」に分かれていること。
さらに、最も単純な線形回帰を使ってデータセットからどのような方程式を解いて回帰問題や分類問題を実行するかを説明します。



出てくる式やテクニック
目的関数(コスト関数):2乗誤差関数とも呼ばれ、機械学習では全体のキーとなる関数。 機械学習ではコスト関数を探し、勾配降下法などのアルゴリズムを使って最小化するやり方が一般的になります。

勾配降下法:コスト関数の最適な最小値を求めるためにコスト関数の変数を更新するテクニック。ディープラーニングでも出てきます。




講義2.より複雑な(非線形な)機械学習の概要



概要
講義1では1次元(線形)の機械学習問題だったため変数が1つだけでした。しかし、講義2では変数を2つ以上に増やして、より機械学習らしい問題の概要を具体例を交えて説明しています。

コスト関数は同じですが、変数が増えているのでそれに合わせた行列表記法。および非線形のときに使う勾配降下法のテクニックを中心に紹介&説明


出てくる式やテクニック
フィーチャースケーリング非線形になると勾配降下法が遅くなるので、それを早くするテクニック

勾配降下法がうまくいってるか確認する方法:主に「グラフにプロットとして視覚化しましょう」という内容

正規方程式:勾配降下法は何回も変数の値を更新する必要があるが、「正規方程式」を使えば一回の更新で済む。ただし変数の数が少ない場合はのみ(1000個ほど)



講義3.分類問題とロジスティック回帰



概要
非線形のつまり、変数が2つ以上の複雑な関数の分類問題で、その値を確率で表すのが「ロジスティック回帰」のアルゴリズムです。

ロジスティック回帰の分類問題ではシグモイド関数により確率問題として扱うため、シグモイド関数に合わせたコスト関数、勾配降下法を説明。

またデータがトレーニングデータに慣れすぎてしまい、汎用的な能力がつかなくなる「オーバーフィッティング」を防止するための”正規化”についても説明しています。



出てくる式やテクニック
ロジスティック回帰ディープラーニングでおなじみのシグモイド関数を使って、ロジスティック回帰のコスト関数やその仕組みを説明

one vs all法:変数が2つ以上のとき、ロジスティック回帰における分類問題のやり方を説明

正規化:「オーバーフィッティング」を防止するために値がゼロに近づくようにするテクニック。コスト関数、勾配降下法、正規方程式に正規化項をつけて、正規化する方法を紹介




講義4.ニューラルネットワーク



f:id:trafalbad:20170302192833j:plain



概要

ディープラーニングでお馴染みのニューラルネットワーク。これは機械学習では非線形の複雑な関数ではよく用いられる手法であり、それを解説。

ディープラーニングでの使い方というより、ニューラルネットワーク機械学習での使い方や、位置づけを解説しています。

ニューラルネットワーク機械学習が複雑なコードを書くものにより成り立つのではなく、人間の脳の機能を真似したものであることがよくわかります。

大体の表記や仕組みはロジスティック回帰のような確率問題に帰着しますが、ニューラルネットワークがロジスティック回帰と違う点は、ロジスティック回帰が変数にフィーチャー(特徴)を使うのに対し、ニューラルネットワークは隠れ層を使い、変数を次の層に伝播する構造を持っていること。


出てくる式やテクニック
重み・バイアスニューラルネットワークでは計算式に使われる概念で、学ぶ上では欠かさない知識。

XORゲート非線形問題をニューラルネットワークで処理するためのテクニック。ロジスティック回帰における「one vs all法」のように、3つ以上のマルチクラスの分類問題を2つの分類する問題として扱う(例:y={1,2,3,4}に対する出力結果の表記法は{1,0,0,0,}、{0,1,0,0,}、{0,0,1,0}、{0,0,0,1}となる)。





講義5.ニューラルネットワークのテクニック


f:id:trafalbad:20170302192950j:plain


概要

ニューラルネットワークでのコスト関数や逆伝播法といった今までやってきた講義内容のニューラルネットワーク版を説明。

メインテクニックはニューラルネットワークのコスト関数および誤差逆伝播法です。


出てくる式やテクニック
ニューラルネットワークのコスト関数ニューラルネットワークはロジスティック回帰問題と同じ確率問題に帰着するため、ロジスティック回帰のコスト関数と大体同じです。

しかし、今まで紹介したコスト関数よりも形がより複雑になってます。



誤差逆伝播:これは説明が長くなってしまうので割愛しますが、主な役割はコスト関数の偏微分を求めるときに使うテクニック。ディープラーニングでは必須のテクニックです。





主な講義の概要を書くとこんな感じでしょうか。機械学習に馴染んでないと訳のわからない用語だらけですが、courseraの機械学習コースでは知識ゼロでもわかるようになってます。

そもそもこの講義は機械学習の使い方を学ぶというよりは全体像をおさえて、機械学習ではどんなことをやっているのかを知ることができます。機械学習の基礎から、シリコンバレーの最先端企業が使っているテクニックまで網羅している分、重いです。しかし機械学習の知識をてっとり早く身につけるにはかなり評価の高い講義なので、そこらのオンライン講座よりはるかにマシです。

自分は課題とかはやらずに講義の内容をひたすらノートにメモってやりました。その備忘録なわけですが少しはこれから受講する人には役立つ内容ではないでしょうか。

講義6〜11はこちらの記事で紹介しています。
trafalbad.hatenadiary.jp