ボルツマンマシンとは

どうも、かわばっちゃんです。

 

今回はボルツマンマシンについて紹介します。

 

 

ボルツマシンとは

 

ディープラーニングで使われる手法です。

 

ディープラーニングでは入力層、隠れ層、出力層で構成されます。

 

隠れ層というのは入力層と出力層を除く中間の層です。

 

ディープラーニングでは人工ニューラルネットワーク(ANN)という複数の層によって構成され、その層の中にある複数のニューロン一つ一つがその他ニューロン全てと繋がるような形になります。

 

ボルツマンマシンでは入力層、隠れ層、出力層のニューロンそれぞれが0もしくは1の値を持ちます。

 

そして、ボルツマンマシンの目的は、全てニューロンのエネルギーを最小とすることであり、最小となる状態は安定状態とし、アトラクターと呼びます。

 

エネルギーを最小にするには焼きなまし法を用います。

 

なお、ニューロンと次層のニューロンの間につながっていない部分があるものを制限ボルツマンマシンと呼び、こちらではエネルギーを最小にする方法は勾配降下法となります。

 

勾配降下法についてはまた後日ご紹介します。

 

 

決定木とは

どうも、かわばっちゃんです。

 

今回は、決定木を説明します。

 

 

決定木とは

 

分類や推論に使う一つの手法です。

 

決定木はトーナメント表のような形で、分類や推論を行います。

 

ただし、トーナメントは下から上に向かっていき、数がどんどん減って行きますが、決定木は逆です。

 

上から下に向かっていき、二股にどんどん別れていく構造です。

 

ある条件において、YesかNoで枝分かれし、さらに、次の条件でYesかNoに分けていき、どんどん細分化していくんです。

 

 

サポートベクターマシンとの違い

 

サポートベクターマシンは分類をする際、異なる種類の最適な境界線を引く形です。

 

決定木は分岐の数だけ線を線を引いていく形です。

 

イメージとしては

 

サポートベクターマシンは散布図に斜めの線を引くイメージ。

 

決定木は散布図を縦や横に線を引いて、ブロックを作るようなイメージ。

 

 

まとめ

 

決定木は有用な手法なので、覚えておくべきですね。

AIで認知症の判別

どうも、かわばっちゃんです。

 

久しぶりにAIの導入事例を紹介しようと思います。

 

今回は東京大学が東京都健康長寿医療センターと共同で顔の表情から認知症を判別するAI開発した件を紹介します。

 

 

どのようなAIか

 

ここで使われたAIは画像認識のAIです。

 

認知症の患者の顔の写真を学習させることで、認知症患者を92%以上の確率で判別ができました。

 

この結果から、このAIの認知症の前段階である軽度認知障害(MCI)の診断に期待されています。

 

 

私の見解

 

認知症の精度の高い判別は難しいんです。

 

その難しい判別を画像から判別できるようにするのは非常に素晴らしい技術ですね。

 

このような技術が医療分野に広がると、喜ぶ患者さんが沢山出てくると思います。

 

 

過学習とは

どうも、かわばっちゃんです。

 

今回はAIの過学習について説明します。

 

 

過学習とは

 

例えば、猫の画像を大量に覚えさせることで、猫の画像を読み込ませた時に、猫だと判断させるAIを作りたいとします。

 

色々な猫の画像から特徴を覚えさせることで、幅広い種類の猫の画像から猫と判断させることができると最高の状態とします。

 

ただ、画像を大量に覚えさせると、幅広い範囲の猫を認識できるようになるというより、むしろ範囲が狭くなります。

 

覚えさせた猫の画像の特徴と一致する物だけを猫と認識してしまうようになり、それ以外の猫は猫だと認識されません。

 

学習しすぎて、予測モデルの範囲を狭めてしまうような、この現象を過学習と呼びます。

 

 

過学習を防ぐためには

 

モデルをシンプルにすることが過学習の鍵です。

 

モデルが複雑になればなるほど、より狭い予測モデルになってしまうので、モデルをシンプルにすると、逆に幅広い予測モデルになります。

 

ディープラーニングではニューロン同士が何層にも複雑に絡みあう構造ですが、この複数あるニューロンニューロンの繋がりの一部を削除することで、モデルをシンプルにします。

 

これをドロップアウトと言います。

 

ディープラーニングではない機械学習ではモデルが複雑になると、ペナルティを与えることで過学習を防ぎます。

 

 

パブロフの犬とは

どうも、かわばっちゃんです。

 

今回は「パブロフの犬」とは何かを説明します。

 

 

パブロフの犬とは

 

1900年頃、ロシアの生理学者イワン・パブロフが行った条件反射の実験です。

 

犬はエサを与えられた時、唾液を分泌します。

 

犬の前でベルを鳴らした時には、当然、唾液は分泌しません。

 

そこから、エサを与える時に必ずベルを鳴らすようにしました。

 

それを繰り返し行うことで、次第にエサがなくても、ベルを鳴らすだけで犬は唾液を出すようになったという実験です。

 

犬はベルの音を聞いて、条件反射で唾液を出すようになったんです。

 

 

機械学習と似ている

 

パブロフの犬」は機械学習(AI)にも似ています。

 

あるパラメータから特徴量を見出し、値を予測し、出力するというイメージですね。

 

ベルを鳴らす、エサがもらえるという2つのパラメータが常に同時に与えられ、唾液を出力するという行動を繰り返すことによって、ベルを鳴らすという特徴量がある時は唾液を出力するというモデルに組み変わっていくということですね。

パーセプトロンとは

どうも、かわばっちゃんです。

 

今回は、機械学習でよく名前が出るパーセプトロンという言葉します。

 

 

パーセプトロンとは

 

ざっくりとしたイメージで言うと、パーセプトロンニューロンシナプスを模倣したものです。

 

ニューロン神経細胞のことで、シナプスニューロン間を接続するものです。

 

ニューロンが周りのシナプスから信号を受けて、ある閾値を超えると、また他のニューロンへ情報を出力すると言う形がパーセプトロンの形です。

 

プログラミング的に言うと、複数の入力を受けて、その入力にそれぞれの重みをかけた数値を足し合わせた結果が、バイアスを超えると出力される、と言う構造です。

 

パーセプトロンはクラス識別に使われる手法です。

 

ちなみにクラス識別は教師あり学習です。

サポートベクターマシン(SVM)とは

どうも、かわばっちゃんです。

 

今回は、サポートベクターマシンSVM)を紹介します。

 

 

サポートベクターマシンSVM)とは

 

AIの中でも主にクラス識別に使われる手法です。

 

様々な入力(説明変数)とバイアスから出力データを識別する方法ですね。

 

 

識別とは

 

識別というと例えば、犬の画像と猫画像、通常メールと迷惑メールなどです。

 

ただ、様々な入力の値が同じだけ結果を左右するとは限りません。

 

例えば、耳が尖っているから猫とは言い切れないですよね。

 

なので、それぞれの入力値がどれだけ重要な要素かという割合を掛け算します。

 

この重要度の割合を「重み」を言います。

 

複数の説明変数にそれぞれの重みを掛け算ものを足し合わせたものが、バイアスを超えているか下回っているかで、識別をするという仕組みがあるわけです。

 

 

サポートベクターマシンSVM)の詳細

 

教師ありデータを散布図で表した時に、2つのクラスに識別したいとします。

 

その時、クラスを識別するために、一本直線を引いて、クラスを分けます。

 

この直線を引いて、重みとバイアスを決定するのがサポートベクターマシンの考え方です。

 

識別するために直線が引けそうな位置は目で見て分かると思いますが、正確な直線の位置はどう決めるでしょうか。

 

サポートベクターマシンでは、直線が引けそうな異なる分類データが近いところで、それぞれのデータとの距離が同じになる位置に直線をひきます。

 

その時に、直線を引くために用いる周辺のデータをサポートベクターと呼び、周辺のデータで異なる分類のものの距離をマージンと呼びます。

 

この時、引いた直線の一次関数の傾きを重み、y切片をバイアスにするというのが、サポートベクターマシンですね。