エアガン アルミスライド 違法,
富岡八幡宮 お守り 通販,
マイクラ 司書 最強,
ゴロアウト 率 計算,
Zガンダム 大気圏突入 バリュート,
南海ホークス 背番号 歴代,
Patissier 英語 発音,
飯豊 まりえ 千葉市,
原産国 定義 半導体,
ごくせん 卒業 スペシャル 再 放送,
T-BOLAN 作詞 作曲,
地学 地理 組み合わせ,
楽天 西巻 なぜ,
サクラ大戦3 Pc ダウンロード,
JR北海道 野球 部 太田,
お台場 五輪マーク 場所,
地球 脱出速度 マッハ,
ホリプロ アナウンサー ズ プロモーション,
PUBG コツ モバイル,
バーナー 使い方 料理,
尾道ラーメン壱 番館 メニュー,
捨ててよ安達さん キャスト 子役,
アンダーテール サンズ セリフ,
銃 所持 目的,
スター ジュエリー 千葉,
BB弾 銃 威力,
大宮から山形 新幹線 往復料金,
射撃 的 人型,
整骨院 仙台 宮城野区,
飯田橋 肉バル 食べログ,
福原遥 Mikanseina Hikaritachi,
ポケモン インド象 ナパーム弾,
なんj コピペ 嘘,
山口 大阪 新幹線パック,
ニューラルネットワークの基本形と言える単純パーセプトロン(simple perceptron)が持つ能力(「パーセプトロンの収束定理」)とその限界について紹介します。 ディープラーニングやニューラルネットワークなど最近話題になっていて、誰でも一回ぐらいは聞いたことがあると思います。しかし、いざと調べようとすると、複雑な数式や図、馴染みのない用語ばっかり出てきて理解できないことが多いかと思っております。この記事では複雑な数式や図、用語を可能な限り一つずつ 分解&咀嚼 しながら、説明していきたいと思っております。 SHAREディープラーニングの参考書などを読んでいると、よく「パーセプトロン」という言葉が出てきます。 今回は機械学習の基礎としてパーセプトロンの特徴や限界、Pythonでの実装方法についてまとめてみました。 この記事を書いている僕はシステムエンジニア6年目 普段はJavaでWebアプリを作ったりSQL書いたり・・・、なので最近流行りのPython、数学、人工知能、デープラーニングができる人には正直憧れています。。。。 自分も一から勉強してこの辺りできるようになりたい、、画像認識モデルを作ったりして、アプリに組み込みたい!これが機械学習、深層学習の勉強を始めたきっかけでした。 体系的に、この分野の基礎から学ぼうとJDLAのG検定の勉強をして合格するところまでいきました。次のステップとして、実際にPythonでコードを書きながら機械学習や深層学習の知識を深めているところです。。。 今回は、G検定で勉強した内容と、機械学習の参考書を色々勉強していく中で重要だと感じた、「パーセプトロン」についてまとめてみました。JDLAのG検定の出題範囲なのでG検定合格を目指している方にもオススメです。 スポンサードリンク目次 まず、機械学習の教材などでよく見る図ですが、、パーセプトロンを絵にしたものを確認してみましょう。 丸で囲まれた\( x_1\)や\( x_2\)、そして\( y\)は「\( x_1\)、\( x_2\)は入力信号で、ここから入力値が入ります。\( w_1\)、\( w_2\)が つまり、ニューロン\( y\)には\( x_{1}w_{1}\)と\( x_{2}w_{2}\)の信号がそれぞれ送られてきます。 ニューロン\( y\)では送られた信号の総和が計算され、その総和が以上を数式で表すと以下のようになります。 閾値を\( \theta\)とする$$ \begin{eqnarray}y = \begin{cases} 0 & ( w_{1}x_{1} + w_{2}x_{2} \leq \theta) \\ 1 & ( w_{1}x_{1} + w_{2}x_{2} \gt \theta) \end{cases}\end{eqnarray} $$ 具体的な値を入れてみると以下の図のようになります。上の例では\( w_{1}\)、\( w_{2}\)の重みをどちらも\( 0.5\)としましたが、入力信号の重要度をコントロールするパラメータとして機能します。(\( x_{1}\)の方が重要な入力信号の場合、\( w_{1}\)を\( 0.7\)とするなど) また、上のパーセプトロンで、\( x_1\)、\( x_2\)を変化させた際の\( y\)の出力をまとめた表が以下です。 例で挙げたパーセプトロンは論理回路のANDゲートと同じ出力になるものでした。 ちなみに、\( w_1 = 0.5\)、\( w_2 = 0.5\)、\( \theta = 0.5\)にすればORゲートになり、\( w_1 = -0.5\)、\( w_2 = -0.5\)、\( \theta = -0.6\)にすればNANDゲートになります。 パーセプトロンは非常にシンプルで理解しやすかったと思います。 次に先ほどのパーセプトロンの式において、閾値\( \theta\)を\( -b\)として式を変換します。$$ \begin{eqnarray}y = \begin{cases} 0 & ( b + w_{1}x_{1} + w_{2}x_{2} \leq \theta) \\ 1 & ( b + w_{1}x_{1} + w_{2}x_{2} \gt \theta) \end{cases}\end{eqnarray} $$ \( b\)をバイアスはニューロン\( y\)の発火のしやすさ(出力信号が1を出力する度合い)を制御します。 今後はバイアスを導入したこちらの式を使います。 では、今度はバイアスが導入されたパーセプトロンでを図ではなくpythonのソースコードで表現します。 ANDゲートをグラフにすると以下のようになります。 上のグラフは横軸\( x_1\)、縦軸\( x_2\)、式は$$ \begin{eqnarray}y = \begin{cases} 0 & ( -1.2 + x_{1} + x_{2} \leq \theta) \\ 1 & ( -1.2 + x_{1} + x_{2} \gt \theta) \end{cases}\end{eqnarray} $$ 色が塗ってある領域(\( x_1 = 1\)、\( x_2 = 1\))が出力\( 1\)になります。 同じように、ORやNANDゲートを直線のグラフで表すことができます。 次にXORゲートについて考えてみます。XORゲートの入出力は以下の表です。 XORをグラフで表すと以下になります。 先ほどのように緑の星マークと青のダイヤマークの領域を直線で分けることはできません。。 これがパーセプトロンの限界です。パーセプトロンでは、1本の直線で領域を分ける( もし、1本の曲線で領域を分ける(パーセプトロンでは線形な領域を表現することしかできません。 パーセプトロンではXORゲートを表現できませんでした。 しかし、実はパーセプトロンの層を以下のように重ねることで、XORゲートが表現できます。 NANDの結果が\( s_1 \)となり、ANDの入力になります。また、ORの結果が\( s_2 \)となり、ANDの入力になります。 入出力結果をまとめると以下の表のようになります。 また、上記をパーセプトロンの表記にすると以下のようになります。 このことから、パーセプトロン単層では表現できなかったことが、層を1つ増やすことで表現できるようになったと言えます。 ちなみにXORをPythonで書くと以下のようになります。 ということで、今回はパーセプトロンについて確認してきました。とてもシンプルなアルゴリズムなので理解は簡単だったと思います。 以下は重要なポイントなので、抑えておきましょう! 参考にした資料 スポンサードリンクCATEGORY :機械学習の基礎まとめ【損失関数(2乗和誤差、交差エントロピー誤差)】機械学習の基礎まとめ【活性化関数(ステップ、シグモイド、ReLU、ソフトマックス)】機械学習のための数学基礎の基礎まとめ【指数や対数の公式に慣れる】機械学習の基礎まとめ【偏微分と勾配降下法】機械学習のための数学基礎の基礎まとめ【平方根と累乗根】1日の摂取栄養素を管理するチャットボットをGoogle Apps ScriptとLINE BOTで作るこのサイトはスパムを低減するために Akismet を使っています。次の記事 © 2020 PeyBlog for SE and PG All rights reserved.