メモ > 技術 > プログラミング言語: Python > 機械学習
機械学習
■機械学習とは
機械学習とは、人間の学習能力と同様の機能をコンピューター上で実現しようとする技術。
人工知能における研究課題の一つ。
一般的な識別プログラムを作る場合、画像データの画素を調べて。
「赤色の要素が多ければリンゴ、黄色の要素が多ければレモン」
のように判定する。判定のルールは人間が決める。
機械学習で判定する場合、人間が明確なルールを決めることは無い。
たくさんのリンゴとレモンの画像データを用意しておいて、それを識別器というプログラムに与える。
そうすることで、識別器が自動的に
「リンゴには赤色の要素が多く、レモンには黄色の要素が多い」
ということを学習する。
■ニューラルネットワークとは
ニューラルネットワークとは、人の神経を模したネットワーク構造のこと。
コンピュータに学習能力をもたせることにより、様々な問題を解決するためのアプローチ。
人間の脳の中には、多数の神経細胞(ニューロン)が存在している。
一つのニューロンは他の複数のニューロンから信号を受け取り、他のニューロンに対して信号を渡す。
脳はこのような信号の流れによって、様々な情報を伝達している。
この仕組をコンピュータで再現したのがニューラルネットワーク。
■ディープラーニング(深層学習)とは
ニューラルネットワークを3層以上重ねたものを、一般に「ディープ・ニューラル・ネットワーク(DNN)」と呼ぶ。
このDNNを使った機械学習がディープラーニング。(深層学習。)
ディープラーニングでは、大量のデータを学習することで、各ニューロン間の接続の重み付けのパラメーターを繰り返し調整する。
■パーセプトロンとは
比較的単純な仕組みでありながら、現在の機械学習の基礎となっている人工ニューロン。
入力層と出力層のみの2層からなる、単純パーセプトロンについて考える。
3つの入力x1、x2、x3と1つの出力yがあるとする。
そして各入力値には、0または1の値を与えることにし、出力する値も0または1になるとする。
ここでは例えば、「新しいパソコンを買うかどうか」について考える。
新しいパソコンを買う場合に出力yは1となり、買わない場合は0になる。
そして入力には、パソコンを購入してもいいかどうかを判断する要因を与えるものとする。
・今が買い替えどきか(x1)
・手元に資金が十分にあるか(x2)
・現在セールをしているか(x3)
これらの要素を考慮し、多数決で決めることになる。
ただしこの多数決は、平等に一票ずつが与えられるわけではない。
もしその人tの手元に資金がたくさんあるなら、x2の条件はそれほど重要ではない。
また、今使っているパソコンが故障した場合はx1の条件は重要になる。
つまり単純な多数決で判断できないため、パーセプトロンでも各入力に対する重み(W)というパラメーターを導入している。
x1、x2、x3に対する重みをW1、W2、W3としたとき、資金が多い人なら(W1=5、W2=2、W3=3)と重みを設定すると考えられるし、
すでにパソコンが壊れている人なら(W1=7、W2=2、W3=1)と重みを設定すると考えられる。
そして、パソコンを購入するかどうかを検討するプログラムは、閾値をbとしたとき、以下のように表現できる。
if (x1 * W1) + (x2 * W2) + (x3 * W3) > b:
# 買う
else:
# 買わない
このように重みや閾値を変化させることで、意思決定を明確化させることができる。
このパーセプトロンを複雑に組み合わせることで、より複雑な判断ができるようにする。
■AI(人工知能)、機械学習、ディープラーニング(深層学習)の違い
AI(人工知能):
マシンによって再現される人間の知能。
人間と同様の知能を実現させようという取り組みやその技術。
機械学習:
人工知能を実現するためのアプローチ。
特定のタスクをトレーニングにより実行できるようになるAI。人が特徴を定義する。
ディープラーニング(深層学習):
機械学習を実装するための手法。
マシンが特徴を自動定義する。
人工知能、機械学習、ディープラーニングの違いとは | NVIDIA
https://blogs.nvidia.co.jp/2016/08/09/whats-difference-artificial-intelligence-machine-learning-deep...
AI、機械学習、ディープラーニングの違いを説明できますか?機械学習と統計の違いは? (1/3):MarkeZine(マーケジン)
https://markezine.jp/article/detail/29471