テクノロジー

AI(人工知能)分野でよく耳にする「パーセプトロン」について解説

AI(人工知能)分野でよく耳にする「パーセプトロン」について解説

近年、AI(人工知能)が、さまざまなところで活用されている話を聞くようになりましたよね。それはここ数年でAI(人工知能)技術が急速な進化をしているためで、そのきっかけを作ったのがパーセプトロンです。

パーセプトロンは、現在のAI(人工知能)を進化させている頭脳の原理。そのパーセプトロンが発展してできたのがディープラーニングで、現在までに多くのAI(人工知能)開発に用いられています。

ディープラーニングとは、これまで不可能だったAI(人工知能)自身が学習して性能を上げられる技術です。現在、ディープラーニングによってAI(人工知能)は進化を続けています。

そのため、現在のAI(人工知能)の仕組みを知りたいなら、ディープラーニングの起源になるパーセプトロンを学ぶと、よりAI(人工知能)を理解できることは間違いありません。そこで今回はパーセプトロンについてと、つながりがあるニューラルネットワーク、ディープラーニングとの関係性についてお伝えしましょう。

パーセプトロンて何?

パーセプトロンのイメージ
パーセプトロンとは、人間の脳神経細胞(ニューロン)の仕組みを真似た計算式(アルゴリズム)を使用してデータを学習するシステムです。そのため、人工ニューロンを意味するパーセプトロンと呼ばれています。

パーセプトロンには、誕生のきっかけになった原型があります。それは、1943年に神経科学者のウォーレン・マッカロック氏と数学者のワイルダー・ピッツ氏によって提唱された、形式ニューロンです。形式ニューロンは、人間の脳神経細胞(ニューロン)の仕組みを表した計算式です。

人間の脳神経細胞は、刺激の強さに対して反応が分かれる境界があります。例えば、その境界の値である閾値(しきい値)が0だったとします。この場合、刺激の強さを表す値が0より小さいと反応はしません。しかし、刺激が0より大きいと反応し、それより刺激を強めても反応は変化しない性質があります。これを「全か無かの法則」や「悉無律(しつむりつ)」といいます。

そして、この脳神経細胞の反応を、簡単に計算式で表したのが形式ニューロン。形式ニューロンでは、刺激を入力値、反応が分かれる境界を閾値、出た反応を出力値として0か1で表します。例えば形式ニューロンで、のどの渇きぐあいを「ジュースを飲む・飲まない」の反応で表すと、次の通りになります。

  • のどの渇き(入力値/1) → > 反応の境界(閾値/0) → ジュースを飲む(出力値/1)
  • のどの渇き(入力値/-1) → < 反応の境界(閾値/0) → ジュースを飲まない(出力値/0)

そして形式ニューロンをヒントにして、1957年にアメリカにあったコーネル航空研究所の心理学者フランク・ローゼン・ブラット氏によって考案されたのがパーセプトロンです。パーセプトロンを使うとそれまではなかった、違う種類のデータを学習して1本の直線で2つに分類できるようになりました。

例えば、パーセプトロンで赤色と青色の異なる複数のデータを読み込み、1本の直線で分類できる色の境界線を見つけだせます。これはパーセプトロンによってコンピュータが赤と青を判別したことになります。

つまり、パーセプトロンの誕生により現在のAI(人工知能)開発で大切なデータからの学習を、コンピュータができるようになりました。そして、パーセプトロンは進化を続けて、現在のAI(人工知能)開発で主流技術になっているディープラーニングへと発展します。

そんなパーセプトロンは大きく分けて、単純パーセプトロンと多層パーセプトロンがあります。では次に、単純パーセプトロンと多層パーセプトロンについて紹介しましょう。

単純パーセプトロンと多層パーセプトロンとは

違いのイメージ

パーセプトロンには、単純パーセプトロンと多層パーセプトロンがあります。その違いは、単純な処理しかできないのが単純パーセプトロンで、複雑な処理ができるのが多層パーセプトロンです。

単純パーセプトロンとは、心理学者フランク・ローゼン・ブラット氏が考案したパーセプトロンのこと。単純パーセプトロンは、データを入力する「入力層」と、データを処理して出力する「出力層」からなる2層構造になっています。そして、入力した複数のデータを処理して出力された値の分布から、単純に1本の直線を引いて分類するのが単純パーセプトロンの特徴になります。

例えば、出力した値が[A、B、B]のように分布したとしましょう。この場合は、[A | B、B]とういう具合に、1本の直線で出力データを分類できます。これを「線形分離」といいます。

しかし、出力データが[B、A、B]の場合では、単純パーセプトロンでは分類できません。なぜなら、単純に1本の直線で分類できないからです。

そこで考えだされたのが、多層パーセプトロン。多層パーセプトロンは、単純パーセプトロンを複数重ねた構造で、入力層と出力層の間に、複雑な処理ができるように中間層(隠れ層ともいう)を加えた3層構造になっています。

中間層は、単純パーセプトロンでは出力層にあたる部分で、2つの単純パーセプトロンを重ねた多層パーセプトロンだと中間層は2つです。そして2つの中間層で処理された値を、最後に1つの出力層で処理して出します。

では例の[B、A、B]を、単純パーセプトロンが2つ重なった多層パーセプトロンを使って処理しましょう。

  1. まず、1つの単純パーセプトロンで[B | A、B]と分類(中間層1)
  2. 次にもう1つの単純パーセプトロンで[B、A | B]と分類(中間層2)
  3. そして、2つを合わせて[B | A | B]とする(出力層)

これが多層パーセプトロンの分類の方法で、「非線形分離」といいます。つまり、単純パーセプトロンは1本の直線(線形分離)、多層パーセプトロンでは直線をつないだ非線形分離で分類する違いがあります。

また、多層パーセプトロンを使って回帰(連続した値の予測)もでき、株価予想などが可能です。では、次にもう少し詳しくパーセプトロンの仕組みについて説明しましょう。

パーセプトロンの仕組み

仕組みのイメージ

パーセプトロン(単純パーセプトロン)の仕組みは、複数のデータを入力できる複数の入力層と、入力データを処理して出力する1つの出力層の2層構造。出力層から出る値は0か1のどちらかが出力されます。パーセプトロンでは入力データの処理に、次の式を使用します。

w0(バイアス) + [x1(入力データ1) × w1(重み)] + [x2(入力データ1) × w2 (重み)] + [xn(入力データn) × wn (重み)]= y
  • バイアス・・・出力値に1が出る度合いを調整する値
  • 重み・・・入力データの重要度を表す値
  • y・・・出力値は0以上だと1、0より小さいなら0が出力

例えば、リンゴかそうでないかを判定するために、リンゴのデータをパーセプトロンに入力して分類しましょう。もし、リンゴなら「0」、そうでないなら「1」が出力されるとし、リンゴのデータに「見た目×重み」、「匂い×重み」を使用すると、次の式になります。

W0(バイアス) + [x1(見た目) × w1(重み)] + [x2(匂い) × w2 (重み)] = y

もし、y(出力値)が0以上だと1(リンゴではない)、0より小さいなら0(リンゴ)と、判定が出ます。以上がパーセプトロンの仕組みです。

そして、このパーセプトロンの仕組みを基本に、多層パーセプトロンからニューラルネットワークが生まれました。では、ニューラルネットワークがどのような進化をしたのかについて、ニューラルネットワークとパーセプトロンの違いを紹介します。

「パーセプトロン」と「ニューラルネットワーク」の違い

ニューラルネットワークのイメージ

ニューラルネットワークとは、パーセプトロン(単純パーセプトロン)を増やして進化させたものです。このように説明すると「多層パーセプトロン = ニューラルネットワーク」と考えてしまいますよね。

実際に、インターネットで調べると多層パーセプトロンとニューラルネットワークは同じものとして扱われている記事もあります。確かに、どちらもパーセプトロンを複数重ねた構造ですが、明確な違いがあります。それは、計算に使用する関数の違いです。

単純パーセプトロンと多層パーセプトロンでは、入力データの計算にステップ関数を使用しています。

ステップ関数とは、単純パーセプトロンと多層パーセプトロンで、1本の直線で分ける線形分離と、直線をつないで階段状になる非線形分離を可能にしている関数のこと。しかし、ステップ関数では0か1の2択で分類するので、それ以下の細かな処理はできません。

そこで、さらに細かな処理ができるよう多層パーセプトロンに使用するようになったのがシグモイド関数。シグモイド関数は、ステップ関数が0か1だけの分類なのに対して、0.0~1.0の間の値で細かな出力ができ、曲線で分類ができるようになりました。

この多層パーセプトロンにシグモイド関数を使用したのが、ニューラルネットワークです。

つまり、パーセプトロンを複数重ねて中間層を設けた多層パーセプトロンに、シグモイド関数を使用して細かな処理ができるように進化したのが、ニューラルネットワークになります。

そして、ニューラルネットワークをさらに進化させるために研究が続けられ、その結果としてディープラーニングが誕生しました。それでは最後に、パーセプトロンとディープラーニングの関係について紹介します。

「パーセプトロン」と「ディープラーニング(Deep Learning)」は関係あるのか

ディープラーニングのイメージ

ディープラーニングとは、2つ以上の中間層を持っているニューラルネットワークです。現在、ディープラーニングは、AI(人工知能)に実行させたいことを学習させる、機械学習の主流技術で使用されています。そしてディープラーニングは、ニューラルネットワークの中間層を増やしたAI(人工知能)の学習方法なので、「深い層の学習」を指す「深層学習」といいます。

しかし、単純に中間層を増やしただけで、ディープラーニングが誕生したわけではありません。実際にニューラルネットワークの中間層を2つ以上増やしても、それ以上は精度が向上しないなどの問題が出てきました。そのため、しばらくの間ニューラルネットワークの性能向上に進展はありませんでした。

そして、2006年にトロント大学の研究者ジェフリー・ヒントン氏によって「オートエンコーダ」が提唱されました。オートエンコーダとは、入力データと出力値が同じになる仕組みのニューラルネットワークのこと。このオートエンコーダを従来のニューラルネットワークに用いると、中間層を2つ以上増やしても、精度を向上させられるようになりました。これがディープラーニングです。

オートエンコーダの登場以降、ハードウェアの性能向上や、AI(人工知能)の学習に必要なデータを大量に取得できるなどの進展でディープラーニングは、現在に至るまで飛躍的に進化してきました。例えば、スマートフォンの顔認証に使用している画像認識や、人間の問いかけに応えるGoogleアシスタントなどの音声認識のAI(人工知能)にも、ディープラーニングが使用されています。しかし、現在の高性能なAI(人工知能)を開発できるようになったのは、単純な処理しかできないパーセプトロンの存在なくして実現は難しかったでしょう。

まとめ

さて、今回はパーセプトロンについてお伝えしました。パーセプトロンとは、人間の脳神経細胞の仕組みを真似た計算式システムです。

パーセプトロンは、複数の入力層と、1つの出力層の2層になっています。データを入力層に入れると出力層から出る値は0か1のどちらかで、データを2つに分類できます。これを線形分離といい、その計算式は次の通りです。

w0(バイアス) + [x1(入力データ1) × w1(重み)] + [x2(入力データ1) × w2 (重み)] + [xn(入力データn) × wn (重み)]= y

このパーセプトロンを単純パーセプトロンといいます。そして単純パーセプトロンを複数重ねたのが、多層パーセプトロン。

多層パーセプトロンは、入力層と出力層の間に、複雑な処理ができる中間層を加えた3層構造です。その特徴は単純パーセプトロンでは不可能な、1本の直線で分類できない非線形分離ができ、回帰(連続した値の予測)もできます。

そして多層パーセプトロンよりも細かな処理を実現するため、シグモイド関数を使用したのがニューラルネットワーク。そのニューラルネットワークをさらに進化させるため、オートエンコーダを用いて中間層を多く増やし、高精度になったニューラルネットワークがディープラーニングになります。

現在、ディープラーニングはAI(人工知能)開発でなくてはならない主流技術になっています。しかし、今日のディープラーニングがあるのは、単純な仕組みのパーセプトロンの存在があるからです。

もし、この世にパーセプトロンが誕生していなければ、現在もAI(人工知能)はそれほど進化していなかったかもしれません。そして、AI(人工知能)について知りたいなら、ディープラーニングの基本原理になるパーセプトロンから勉強しましょう。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました