機械学習
基礎
新卒エンジニア

AIとか機械学習とかの概要の話

はじめに

この記事は新卒向けAdvent Calendarの12/17の記事になります。
私は今年の3月に地球惑星系の大学院を卒業して、4月にエンジニアとして就職し、データ分析系の仕事をしてきました。
新卒向けということで、自分の中での整理も兼ねて機械学習とかAIとかの基本的な話を書きます。
専門的な踏み込んだ話を書くつもりはないので、玄人の方はあまり読む意味がないかもです。
用意していたネタがあまりうまくいかなかったなんて言えない

AI、人工知能、機械学習、ディープラーニング

この界隈だとよく出てくる言葉ですね笑

人工知能(AI):

人間の知能を機械で再現しようとする試み
分かりやすいところで言うとドラえ〇ん。
ドラ〇もんは人と話したり、ものを見て判断したり「汎用AI」と呼ばれる。
それに対して、現状は特定のタスク(画像分類や音声認識など)に特化したAIまでしか実現できておらず
こちらは特化型AIと呼ばれる

機械学習:

人工知能を実現するための手法の一つ
人間が行うような何かから法則性などを学ぶこと、をコンピューターで実現するもの
データから学習して、法則性を見つけ出すことができる。
(例:過去のデータから未来予測する、似た者同士をまとめて分類する)

ディープラーニング:

機械学習の中の手法の一つ
人間の脳の神経(ニューロン)の働きかたを模して造られたニューラルネットワークを多層に重ねたもの。
機械学習の手法にもいろいろあって、
例えば気温とビールの売り上げの関係なら、線形に考えてy=ax+bのaとbが分かれば予測できるが、
人間の脳神経を模して学習させて予測させたら、色々できるようになって一つの手法として確立されましたよ、という話。

なにができるの?

よくこれらの技術は万能だと思われがちですが、どのように使うのか、何ができるのかは知っておく必要があります。
基本は人間の学習と一緒で、まずは教えて学習させる必要があります。
具体的に言うとデータを与えて学習させてやる必要があります。判断材料が無かったら人間も判断できませんからね。
そして、どのように学習するのかもこちらで指定してやります。「モデル」といいます。
先ほど挙げた線形回帰モデルや、ディープラーニング、SVM、ロジスティック回帰…色々ありますが、何を使いますか?ということです。
それぞれのモデルに得意不得意があるのでここは詳しく知る必要がありますね。

学習とは具体的に何をしているかというと、コンピュータなので数値計算で処理が行われるわけですが、
途中で掛けたり足したりする変数(重み)をより良い予測ができるように調整していくことを指しています。
線形モデルで言うとy=ax+bのaとbを実際に合うものに変えていくことが学習になりますね。

学習が終わったら予測です。
予測は大きく分けて「回帰」と「分類」があります。
回帰は温度や売り上げの未来予測など、数値を出したいときに使われて、
分類はクラスに分ける(ラベリング)時に使われます。
例えば画像を見て人か猫かを判断させるのは分類になります。

教師あり学習、教師無し学習

学習の仕方には教師あり/なしの大きく二つがあります。
文字通り、答えを教えるのか教えないのかの違いです。

昔の将棋ソフトや2015年にプロの囲碁棋士を倒したAlphaGoは教師あり学習、
今年そのAlphaGoに圧勝したAlphaGoZeroは教師なし学習で学習したものでした。

以前の将棋や囲碁のソフトでは良い手はどういうものかを人が教えていました。(王は囲いで守った方が良いとか、飛車は相手陣地に攻め込んで龍に成った方が良いとか)
またAlphaGoは勝ち負けの情報とともに過去のプロ棋士の大量の棋譜を読み込ませ、勝つ試合ではどのような手がさされているのかを学習していました。
いずれもこうすると勝てますよ、というのを教えています。

AlphaGoZeroは教師無し学習の中の強化学習という手法を用いています。
これは碁の基本的なルールだけ教えて打ち手は教えず、あとはAlphaGoZeroどおしで対局をさせて
強い手を学習したそうです。
どういった手が強いのかは全く教えていないので教師無し学習というわけです。
3日で500万局対戦し、AlphaGoに圧勝したらしいです。
面白いのは3日間の学習の中で、人間が千年単位の歴史の中で見つけてきた囲碁の定石を見つけただけでなく、
新しい定石も生み出しているらしいです。っょぃ

終わりに

新卒向けAdventCalendarで他分野の基礎の話が読めるのは面白いですね。
勉強頑張りましょう!