社内有志で
https://www.coursera.org/learn/machine-learning/home/welcome
を履修しながら毎週、進捗や疑問報告をし合う勉強会をやっているのですが、今週は参加者の予定が合わず開催できなかったので、Qiitaにてまとめ。
はじめにひとこと。
Courseraのこのコースまじでオススメ
Coursera 進捗
Week6終えました。
そして、Week7もプログラミング課題以外は終えました。
Week6
Bias vs. Varianceが主なテーマで、実装したアルゴリズムのラーニングカーブを描いて、次にどう改良するか考える方法の伝授。
Trainingセットと、Cross Validationセットのそれぞれからどのくらいの精度が出てるかをプロットして、OverfittingしてるのかUnderfittingしてるのかを判断 -> 場合に合わせた対処をしようというもの。
あと、Skew dataの扱いってのがタイトル的になんのことかわからなかったけど、これはtrue/false positive/negativeのケースが極端な分布をしてる時にどう評価するのって話だった。
単純な話だけど、こういうケースの認識と、具体的な対処法を予め知っとかないと不毛に何時間も費やすことになるので地味に重要。
Week7
かの有名なSVMとKernelについて。
SVMってよく聞くけど何なのか、というのがわかった。
logistic regressionの変形がベースなのね。
実際、week3くらいでlogistic regressionの話を聞いた時に、なんでsigmoid関数を使うの?もっと線形な関数でもよくない?ってのは疑問に感じていたのですっきりした。
この関数とコスト関数から、Marginを取るように分類されるっていう説明は非常にわかりやすかった。
Ng先生、恐ろしく説明がうまい。
後半はやや天下り的に終わったWeek7でした。
(K-meansは教師なし学習なのでさらに翌週(Week8)でした。 -> 来週やる)
ここまで受けてきて(~Week7まとめ)
現時点で、実装できるし試せるよというアルゴリズムは
- Linear Regression
- Logistic Regression (classification)
- Neural Network
- SVM
ということに。
そして、実際にうまい結果が出なかった時にどうすればいいかもそれなりにわかる状態になってきたはず。
早く何かに応用したい気持ちでいっぱいですが、さらに深く学びたいという気持ちもいっぱい。
あと、Coursera分量が結構多いので消化するだけで1週間が過ぎてしまうということもあり、応用は履修後になろうかという気がします。
(現在業務で直接機械学習を使うことはほぼないので)
同じデータセットをもとに、社内解析コンペとかやってみたい。
翌週に向けて
- Week7のプログラミング課題やります
- Week8もほぼほぼ終える
- K-means、クラスタリング
- Dimensionality Reduction -> 主成分分析のこと?
雑感
ちゃんと理解しない処理方法を使っちゃいけないと思うし、ちゃんと理解していない処理で示唆されたデータを判断に用いてはいけないと思う。