パーセプトロンとは何か?

仕事がらAIを扱うことになり勉強をしていますが、本を読んだりするだけでは中々身につかないので、
AIもとい深層学習・機械学習に関してアウトプットをすることで学びを得ることを目的にブログを開設してみました。

なので、誤り等ありましたら、ご指摘いただけますと幸いです。

私自身、深い数学の知識や統計の知識をあまり持っていません。(たぶん統計検定2級くらいです)
なので、色々な本を開くたび数式アレルギーを起こしながら日々奮闘しています。
数式やプログラムを見ただけで、「うっ」となってしまう方々向けに、なるべく分かりやすく解説出来るように心がけていきたいと思います。<参考図書>

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

今回はニューラルネットワークのさわり部分(パーセプトロン)について説明します。

パーセプトロン

パーセプトロン概要

パーセプトロンは1957年頃に考案されたアルゴリズムで、ニューラルネットワークに深く関係しています。パーセプトロンニューラルネットワークの起源ともいえるアルゴリズムであり、パーセプトロンを幾重にも積み重ねたものがディープラーニングでは使用されています。

パーセプトロンアルゴリズムは、入力(x1,x2)と重み(w1,w2)の積和演算の結果が、一定の値を超えていたら「1」を、超えていなかったら「0」を出力する、という単純なアルゴリズムです。
(例として2つの入力を受け取っていますが、入力数に決まりはありません。)

f:id:egao_papa:20210113214428p:plain

パーセプトロンを数式で表すと以下のようになります。(θは「一定の値」)

f:id:egao_papa:20210113215216p:plain

ちなみに、例図のように入力と出力の2層からなるパーセプトロンを「単純パーセプトロン」と呼び、入力と中間と出力の3層からなるパーセプトロンを「多層パーセプトロン」と呼びます。
この「多層パーセプトロン」が他でもない、ニューラルネットワークと呼ばれるものです。

0と1の出力

0と1を出力出来ると何がうれしいのでしょうか。
それは分類問題が解決できることにあります。

つまり、入力データがあるクラスに属するか(1)、属さないか(0)を分類することが可能となります。

f:id:egao_papa:20210113221124p:plain

後述するように複雑な分類問題を解くことは出来ませんが、簡単な分類問題であれば機械で解決することが出来るようになったのです。

パーセプトロンの限界

しかし、パーセプトロンにも限界があります。
それは線形分離可能な問題しか解くことが出来ないということです。

f:id:egao_papa:20210113221902p:plain

この解説にはよくXORが使われます。XORを図表で表すと以下のようになります。

f:id:egao_papa:20210113223456p:plain

このように、少し複雑な問題になってくるとパーセプトロンでは対応できないことから研究は停滞し、一時日の目を見ることはなくなりましたが、ディープラーニングの実用化にあたり現在では目にする機会が多くなりました。

次回は「多層パーセプトロン」「入力」「重み」などについて触れていきます。