ディープラーニングパーセプトロンの原理の詳しい説明

ディープラーニングパーセプトロンの原理の詳しい説明

前回の機械学習のトピックは終了しました。機械学習の分野でよく使用されるアルゴリズム、モデル、その原理、実装について説明しました。ただし、マルコフ、隠れマルコフ、条件付きランダムフィールドなど、関係のないテクノロジもまだいくつかあります。ただし、これらの内容は比較的弱く、あまり頻繁に使用されない内容であるため、一つ一つ説明することはしません。興味のある学生は自分で学習してください。 GBDT や SVM のようなモデルを理解できれば、それらのモデルはまったく問題ないと思います。

ディープラーニング入門

ディープラーニングは近年非常に人気があり、多くの人がそれを人工知能と関連付けています。ここでの「詳細」とは、詳細な学習や深い概念を指すのではなく、単に複数のニューラル ネットワーク層で構成された「ディープ」ニューラル ネットワークを指します。

[[346173]]

実際、ニューラル ネットワーク、ディープ ニューラル ネットワーク、ディープラーニングのアルゴリズムなど、すべて数十年の歴史があります。たとえば、ディープラーニングのよく知られたコアアルゴリズムであるバックプロパゲーションアルゴリズムは、30 年以上前の 1989 年に初めて提案されました。この分野は長い歴史を持ちますが、浮き沈みを経験してきました。栄光の時代もありましたが、近年になって急激に台頭し、ほとんど誰もが知っている概念になりました。

その理由は非常に単純です。ニューラル ネットワークのトレーニングの複雑さが大きすぎるため、従来のコンピューティング リソースではこのような大規模な計算を処理できないのです。つまり、以前の時代では、ディープラーニングはまだニッチな分野でした。研究をする人は多くなく、資金も限られています。近年、コンピューティング リソースの急速な発展と、GPU によるニューラル ネットワークのトレーニングを加速するブラック テクノロジーの発明により、当初は不可能だったことが可能になりました。 AlphaGoがイ・セドルを破ったという画期的な出来事と相まって、ディープラーニングは一気に多くのリソースと注目を集め、業界は自然に繁栄しました。

ディープラーニングはニューラルネットワークに関連する技術であるため、本特集記事の内容も当然ニューラルネットワークの範囲から逸脱することはありません。今日は、ニューラル ネットワークの最も基本的なニューロンであるパー​​セプトロンから始めます。

パーセプトロン

パーセプトロンの英語名は perceptron で、これはニューラル ネットワークの最小の構成要素として理解できます。自然界の生物では、神経の最小単位はニューロンであることがわかっています。ニューロンは、おおよそ下図のような細胞です。学生のほとんどは生物学の教科書でニューロンの写真を見たことがあると思います。

パーセプトロンは、ニューロンのバイオニック構造として理解することができます。ニューロン セルは複数の神経細胞に接続でき、これらのニューロンは互いに接続されて巨大なネットワークを形成することは誰もが知っています。ニューロンは電気信号と化学物質を相互に伝達し、一連の複雑な反応を形成します。人間の脳は極めて大きく複雑な神経ネットワークとして理解することができますが、人間の脳と生物の神経ネットワークがどのように機能するかについてはコンセンサスがありません。

しかし、コンピューター科学者はニューロンとニューラルネットワークをシミュレートしてディープラーニングモデルを構築し、実際にいくつかの問題で驚くべき結果を達成しました。パーセプトロンはニューロン セルの抽象化として考えることができます。ニューロン セルが他の複数のニューロンから信号を受信し、別のニューロン セルに信号を送信することは誰もが知っています。入力信号を入力として、出力信号を出力として扱い、パーセプトロンの構造を取得します。

ここでは、構造を可能な限りシンプルにしました。入力信号を浮動小数点数と見なします。各信号には独自の重みがあります。すべての信号が加算され、最終的にマッピング関数を通じて出力されます。

最も単純なパーセプトロンを例として見てみましょう。

このパーセプトロンには2つの入力しかないので、簡単に

ここで y は浮動小数点数であり、y に符号関数を当てはめることができます。いわゆる符号関数は、しきい値に従って分類するために使用されます。例えば、閾値を設定する

もし

それで

さもないと

ニューロンやパーセプトロンに似ていますが、原理は非常に単純です。式で表すと次のようになります。

ここ

これを活性化関数といいます。上記の例の活性化関数は符号関数であり、しきい値に従って分類する関数です。ニューラル ネットワークでよく使用される活性化関数には、主に 3 つの種類があります。1 つはよく知られているシグモイド関数、もう 1 つは relu 関数、そしてもう 1 つは tanh 関数です。それぞれの画像を個別に見てみましょう。

relu 関数の方程式は非常に単純です。

。しかし、これは非常にうまく機能し、ニューラル ネットワークで最も一般的に使用される活性化関数の 1 つです。これを使用した場合の収束速度は、シグモイドを使用した場合よりも速くなります。その理由は非常に単純です。シグモイド関数のグラフは両側で非常に滑らかなので、導出から得られる結果は 0 に非常に近くなり、勾配が下がると収束速度は自然に遅くなります。これについては、以前シグモイ​​ド関数を紹介したときにも触れました。

画像から、tanh 関数とシグモイド関数は非常によく似ています。 唯一のわずかな違いは、値の範囲が異なることです。 シグモイド関数の値の範囲は 0 ~ 1 ですが、tanh の値の範囲は -1 ~ 1 です。値の範囲が違うだけのように思えますが、それでも差はかなり大きいです。一方で、両者の感度範囲は異なります。 tanh の感度範囲は比較的広いです。もう 1 つのポイントは、sigmoid によって出力される値はすべて正であるため、シナリオによっては問題が発生する可能性があることです。

パーセプトロンは実際には活性化関数を持つ線形方程式であることは誰でもわかると思います。ある程度、ロジスティック回帰モデルもパーセプトロンとして考えることができます。皆さんにとって混乱するかもしれない質問があります。なぜ線形方程式の後に活性化関数を追加する必要があるのでしょうか?追加しなくても大丈夫ですか?

答えは「いいえ」です。その理由は非常に単純で、複数のニューロンをまとめてネットワークを形成するからです。各ニューロンの計算が純粋に線形である場合、ニューラル ネットワーク全体は実際には線形演算と同等になります。これは数学的に証明できるので、計算結果が純粋に線形にならないようにパーセプトロンに何かを追加する必要があります。

パーセプトロンと論理回路

最後に、より実用的な例を見てみましょう。最も単純な例は、もちろん、論理回路の AND-OR ゲートです。 AND ゲート、OR ゲート、NOT ゲートは実際には似ており、いずれも 2 つの入力と 1 つの出力を持ちます。

AND ゲートを例に挙げてみましょう。

バイナリ AND 演算は誰でも知っています。両方の数字が 1 の場合にのみ 1 が得られます。このようなパーセプトロンを書くのも非常に簡単です。

  1. 定義AND (x1, x2):
  2. x = np.array([x1, x2]) w = np.array([0.5, 0.5])
  3. シータ = 0.7
  4. w.dot(x) > thetaを返す

同様に、OR ゲートや NOT ゲートも記述できますが、これも難しくありません。しかし、解決できない状況、つまり XOR 状況があることがわかります。まず、XOR の真理値表を見てみましょう。

XOR データをセグメント化するためにパーセプトロンを使用することはできません。この問題は、以前に SVM モデルで紹介したとおりです。XOR データは線形に分離できないため、分割線でセグメント化することはできません。

しかし、XOR 問題は解決不可能というわけではありません。単一のパーセプトロンを使用して分割することはできませんが、パーセプトロンを直列に接続して単純なニューラル ネットワークを形成すると、問題は解決可能になります。 AND ゲート、OR ゲート、NOT ゲートはすでに実装されていると仮定します。 XOR ゲートは次のように実装できます。

  1. XOR(x1, x2)を定義します。
  2. # ゲートなし
  3. s1 = NAND(x1, x2)
  4. s2 =または(x1, x2)
  5. 戻る かつ(s1, s2)

パーセプトロン全体の構造は次のようになります。

TensorFlow 公式サイトでは、プレイグラウンドと呼ばれる Web アプリケーションが提供されており、これを使用すると、ニューラル ネットワークの構成とトレーニング プロセスを直感的に体験できます。例えば、先ほどのXOR問題では、ニューラルネットワークの層の数や各層に含まれるニューロンの数を自分で設定することができます。ニューロンの活性化関数も設定でき、ニューラルネットワークのトレーニングプロセスや各種パラメータの役割を直感的に体験できます。

この時点で、パーセプトロンの紹介はほぼ終わりです。パーセプトロンはニューラルネットワークの基礎です。実は内容はそれほど多くありません。構造も形式も、前回の機械学習で紹介したロジスティック回帰と非常によく似ています。技術的な難しさやポイントは多くなく、直感的に感じ取ればよいだけです。

<<:  AIについて何も知らないのに、どうやってAIを開発すればいいのでしょうか?

>>:  8つの一般的なアルゴリズムのアイデアを説明する1つの記事

ブログ    

推薦する

...

人工知能、AI、ロボットは雇用に影響を与えるでしょうか?劉強東さんの答えに人々は拍手喝采しました!

[[220982]]人工知能とロボットはどちらも破壊的であり、人類社会の発展の新たな時代を導くでし...

今日の人工知能はすでに販売業界に混乱をもたらしている

人工知能と機械学習は現在では導入が容易であり、現在実行されている反復的なタスクやプロセスの多くを自動...

これは機械学習ツールに関する最も包括的なハンドブックかもしれません。

[[419906]]私はこれまで、人工知能とデータサイエンスのオープンソース プロジェクトを数多く...

世界経済フォーラムの報告: 5年以内に8,500万の仕事が機械に置き換えられる可能性がある

世界経済フォーラム(WEF)のウェブサイトが21日に報じたところによると、同組織はこのほど「仕事の未...

AIとITの自動化の6つのレベル

IT サービスの自動化の時代に入りつつあります。しかし、IT 業界では、自動車業界が評価されるのと同...

...

NYU のポスドクが、arXiv に 30 分遅れて論文を提出したというだけで ACL に拒否されたのですか?学者たちは憤慨し、ACLに二度と投票しないと誓う

ACL は国民を怒らせた!今朝、この投稿のせいで AI コミュニティ全体が騒然となった——ニューヨー...

機械学習開発者が知っておくべき 5 つのディープラーニング フレームワーク

ディープラーニングには大量の計算が必要です。通常、多数のノードを持つニューラル ネットワークで構成さ...

自動運転がまだ人間から解放されていないとき

「不適切なタイミングで車線変更をすることがよくあるのですが、状況を救うためにハンドルを切ろうとすると...

自動運転L2が登場、運転はもっと楽になるのか?

現在、人間による自動運転シリーズの進捗状況はどうなっていますか? 最終エピソードが完成するまでにどれ...

ジェネレーティブAIがソフトウェア配信を支援する方法

レイチェル・レイコック約 2 か月前、私は Thoughtworks の CTO になりました。それ...

人工知能の知能を実現する方法

[[257748]]近年、ビジネスにおける人工知能 (AI) の重要性が急速に高まり、今では主要なテ...