概要
機械学習ってよく聞くけど何から勉強すればいいんだよという人たちのために知っていることを書いていく.
お前の言っていることは本当なのか?とか,わかりにくいからもっと数式を使って説明しろとか,なんでもいいので興味を持つきっかけになったら嬉しい.
ニューラルネットワーク(脳を模倣したやつ; ディープラーニングの先祖)が好きなので,たぶんその話がメインになると思う.
機械学習とは
Wikipediaによると
1959年、アーサー・サミュエルは、機械学習を「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」だとした。
とのこと.
なぜ機械学習が必要なのか
コンピュータが得意なこと
コンピュータは,人間がその手順を明確に説明することのできる作業がものすごく得意だ.
例えばエラトステネスのふるい(素数を見つけるやつ.ググって)のように,残った候補の中から$p$の倍数を消していくのを繰り替えす作業が得意.
コンピュータは人間よりずっと計算が早いし,上記のような単純作業を命令しても文句を言わない.
コンピュータが苦手なこと
ところがコンピュータは,人間がその手順を明確に説明することのできない作業がものすごく苦手だ.
というよりも,コンピュータは人間が書いた手順書(プログラム)を元に作業をするので,人間が手順を明示できない作業は行うことができない.
例えば,人間は以下の写真を3次元で考えたときに,人形と植木鉢,どちらがどちらの前にあるのかなんとなくわかる.
Image by pasja1000 on Pixabay
でも,どういう手順でそう判断するに至ったかを説明することはできない.
だから,コンピュータに上の問題を解くプログラムを与えることもできない.
機械学習を使ってやりたいこと
そこで,機械学習という手法の出番だ.
機械学習では,ある問題を解決するための手順を与えることはできないけれど,データから(人間には見つけられない)規則性を発掘して「入力を与えたら正解を返す箱みたいなもの」を作ることを目標とする.
上の写真の例で言えば「写真を入れると3次元で考えたときに前にくるものが返ってくる箱」を作る.
箱の作り方
ニューラルネットワーク,サポートベクトルマシン,k-meansなどいろいろある.
いずれの手法も,問題を解くための明示的な手法ではなくデータを与えて,コンピュータの得意な四則演算と繰り返し処理で規則性を見つけることを目標としている.