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

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

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

ブログ    

推薦する

生産性を高める 13 の AI ツール

良いツールは仕事の効率を2倍にしてくれます。そのため、私は実際の仕事で常にツールを最適化して、仕事を...

リアルスティールの実写版!山東省の3人組のチームが、最小遅延12ミリ秒の史上最速ボクシングロボットを開発した。

この男性が自分の動きでロボットを操作している様子を注意深く見てください。彼がパンチを繰り出すと、ロボ...

工業情報化部:大規模モデルアルゴリズム技術のブレークスルーの促進とスマートチップの計算能力の向上に重点を置く

10月20日、国務院新聞弁公室公式サイトによると、工業情報化部の報道官、運営監視調整局局長の陶青氏は...

野生生物の保護: ドローン、ロボット、AI

最近、雲南省の象の群れに関するニュースを皆さんも聞いたことがあると思います。 2020年、雲南省西双...

十分なデータを使用してモデルをトレーニングしたかどうかをどのように確認しますか?

[51CTO.com クイック翻訳]ディープニューラルネットワーク (DNN) には大量のトレーニ...

7nmプロセス限界を突破した世界初の3DウェーハレベルパッケージングプロセッサIPUがリリース

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

ディープラーニングが従来の方法ほど効果的ではない典型的な事例にはどのようなものがありますか?

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

ソフトウェアとハ​​ードウェアを組み合わせたCDS Shouyun AIクラウドサービスの技術実践

人工知能は新たな変化を先導しています。近年、人工知能はテクノロジー業界から始まり、急速に生活の各分野...

...

【文字列処理アルゴリズム】文字列包含アルゴリズムの設計とCコード実装

1. 要件の説明長い文字列と短い文字列が与えられた場合、短い文字列のすべての文字が長い文字列に含まれ...

AIはIoTベースのDDoS攻撃を阻止できる

研究者らによると、人工知能はインターネットサービスプロバイダー(IPS)がDDoS攻撃に先手を打つの...

センサーがなければ、電子自動化もロボットも存在しないでしょう。

センサーは、温度、湿度、光、その他の非電気量などの特定の物理的パラメータの変化を、電流、電圧などの別...

テスラAIディレクター:33年前にルカンのニューラルネットワークを再現したが、今とあまり変わらない

最近、Tesla AI のシニアディレクターである Andrej Karpathy 氏が、非常に興味...

複数のAI企業の人事担当者/面接官が明かす:機械学習エンジニアの採用方法

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...