出典: getwallpapers.com ディープラーニングは機械学習の重要な分野の 1 つです。その目的は、人間にとって自然なことをコンピューターに教えることです。ディープラーニングは自動運転車を支える重要な技術でもあり、一時停止の標識を認識したり、歩行者と街灯を区別したりするのに役立っています。これは、携帯電話、タブレット、テレビ、ハンズフリー スピーカーなどのデバイスの音声制御を可能にする鍵となります。ディープラーニングは、その前例のない成果により、最近幅広い注目を集めています。 ディープラーニングでは、コンピュータ モデルが画像、テキスト、または音声から直接分類タスクを実行する方法を学習します。ディープラーニング モデルは最先端の精度を達成でき、場合によっては人間のパフォーマンスを超えることもあります。通常、大量のラベル付きデータと多くのレイヤーを含むニューラル ネットワーク アーキテクチャを使用してモデルをトレーニングします。
リソース ディープラーニング モデルは、さまざまな複雑なタスクに適用できます。 1. 回帰と分類のための人工ニューラルネットワーク(ANN) 2. コンピュータビジョンのための畳み込みニューラルネットワーク (CNN) 3. 時系列分析のためのリカレントニューラルネットワーク(RNN) 4. 特徴抽出のための自己組織化マップ 5. レコメンデーションシステムのためのディープボルツマンマシン 6. レコメンデーションシステムのためのオートエンコーダ この記事では、人工ニューラル ネットワーク (ANN) の関連するすべての側面を取り上げます。 「人工ニューラル ネットワーク ( ANN ) は、生物の神経系 (脳) が情報を処理する方法にヒントを得た情報処理パラダイムです。これは、特定の問題を解決するために連携して動作する、高度に相互接続された多数の処理要素 (ニューロン) で構成されています。」 主な内容: 1. ニューロン 2. 活性化関数 3. 活性化関数の種類 4. ニューラルネットワークの仕組み 5. ニューラルネットワークの学習方法(バックプロパゲーション) 6. 勾配降下法 7. 確率的勾配降下法 8. ニューラルネットワークを訓練するための確率的勾配降下法 ニューロン ニューロン(神経細胞とも呼ばれる)は、脳と神経系の基本単位です。ニューロンは樹状突起を通じて外界からの刺激情報を受け取り、その情報を処理し、軸索を通じて他の細胞に出力します。 生物学的ニューロン 細胞体:核を含み、必要な生化学反応を実行するニューロン細胞の主要部分。 樹状突起:ニューロンの周囲にある毛のような管状の構造。主に入力信号の受信を担当します。 軸索:伝送線路に似た、長くて細い管状の構造です。 シナプス:ニューロンは複雑な空間配置で互いに接続します。軸索末端は再び分岐して、シナプスと呼ばれる非常に複雑で高度に特殊化した構造になります。 2 つのニューロン間の接続はこれらのシナプスで発生します。 樹状突起は他のニューロンからの入力を受け取ります。細胞体はこの入力情報を処理し、対応する出力を生成し、軸索とシナプスを介して他のニューロンに送信します。 電気信号はニューロンを通って流れます。 次の図は、生物学的ニューロンにヒントを得た ANN の一般的なモデルを表しています。パーセプトロンとも呼ばれます。 単層ニューラル ネットワークは一般にパーセプトロンと呼ばれ、与えられた入力に対して出力を計算します。 パーセプトロン 上図において、x0、x1、x2、x3...x(n) はネットワークの入力(独立変数)を表し、各入力はいわゆるデンドライトを通過する際に対応する重みが掛けられます。重みはw0、w1、w2、w3…w(n)と表され、特定のノードの強さを示します。 bは偏差値です。バイアス値によって、活性化関数を上下にシフトできます。 最も単純なケースでは、これらの積を加算し、伝達関数 (活性化関数) に入力して結果を取得し、それを出力として送信します。 活性化関数 活性化関数は、ANN が非常に複雑な事柄を学習して理解するために重要です。それらの主な目的は、ANN 内のノードの入力信号を、次の層の入力として機能する出力信号に変換することです。 活性化関数は、加重合計バイアス値を計算してニューロンを活性化するかどうかを決定します。目的は非線形性を導入することです。 活性化関数を適用しない場合、出力信号は単なる線形関数 (一次多項式) になります。線形関数は簡単に解くことができ、消費電力も比較的少ないですが、複雑さには限界があります。したがって、活性化関数がなければ、モデルは学習できず、画像、ビデオ、オーディオ、スピーチなどの複雑なデータをモデル化することはできません。 非線形関数はなぜ必要なのでしょうか? 非線形関数は曲率を持つ関数です。今、入力を出力にマッピングする任意の複雑な関数を学習し、表現できるニューラル ネットワークが必要です。したがって、ニューラル ネットワークは「普遍的な関数近似器」とも考えられます。 活性化関数の種類: 1.閾値活性化関数(バイナリステップ関数) バイナリ ステップ関数は、しきい値ベースの活性化関数です。入力値が特定のしきい値を超えると、ニューロンがアクティブになり、まったく同じ信号を次の層に送信します。特定のしきい値を下回ると、ニューロンはアクティブになりません。 バイナリ関数 この関数の問題は、バイナリ分類子 (1 または 0) を作成することですが、このようなニューロンを複数接続して、Class1、Class2、Class3 などのクラスをさらに導入したい場合はどうなるでしょうか。この場合、すべてのニューロンが 1 を出力し、判断できなくなります。 2.シグモイド活性化関数 – (論理関数) シグモイド関数は、0 から 1 の範囲にある特徴的な「S」字曲線または S 型曲線を持つ数学関数であるため、予測された確率を出力として必要とする場合に使用されます。 シグモイド曲線 シグモイド関数は微分可能であるため、任意の 2 点間の曲線の傾きを解くことができます。シグモイド活性化関数の欠点は、大きな負の入力が提供された場合、トレーニング中にニューラル ネットワークが停止する可能性があることです。 3.双曲正接関数 - (tanh) Sigmoid に似ていますが、パフォーマンスが優れています。本質的に非線形なので、レイヤーを追加することができます。この関数の範囲は (-1,1) です。 双曲正接関数 この関数の主な利点は、負の入力が負の出力にマッピングされ、ゼロ値の入力のみがほぼゼロの出力にマッピングされることです。したがって、トレーニング中に遅延が発生する可能性が低くなります。 4.整流線形ユニット (ReLu) ReLu は、CNN と ANN で最も一般的に使用される活性化関数であり、範囲は 0 から無限大です。 [0,∞] レル x が正の場合は 'x' を出力し、x が負の場合は 0 を出力します。 ReLu は線形関数の問題のように見えますが、本質的には非線形であり、ReLu の組み合わせも非線形です。実際、ReLU を組み合わせることでほとんどの関数を近似できる非常に優れた近似器です。 これは通常、ニューラル ネットワークの隠し層に適用されます。出力層では、分類問題には通常ソフトマックス関数が使用され、回帰問題には線形関数が使用されます。 ここでの問題は、トレーニング中に一部の勾配が消えてしまう可能性があることです。これにより重みが更新され、どのデータ ポイントもそのニューロンをアクティブ化できなくなります。 ReLu は基本的にニューロンの死につながります。 この問題を解決するために、 Leaky ReLuが導入されました。 Leaky ReLu は、上記の問題が発生しないように小さな傾斜を導入します。 Leaky ReLu の範囲は -∞ から +∞ です。 ReLu 対 Leaky ReLu Leaky は ReLu 関数の出力範囲を拡大します。通常、a = 0.01 です。 a が 0.01 でない場合はランダム ReLu と呼ばれます。 ニューラルネットワークはどのように機能するのでしょうか? 不動産価格を例に挙げてみましょう。まず、面積、寝室数、都市までの距離、築年数など、さまざまな要素を 1 つの行に集約します。 入力値は重み付けされたシナプスを介して出力層に直接送られます。 4 つの入力値はすべて分析され、活性化関数に入力されて出力が生成されます。 シンプルですが、入力層と出力層の間に隠し層を追加することで、ニューラル ネットワークの機能を拡張し、精度を向上させることができます。 隠れ層を持つニューラルネットワーク(ゼロ以外の値のみ表示) 上の図では、4 つの変数すべてがシナプスを介してニューロンに接続されています。ただし、すべてのシナプスに重みが付けられるわけではありません。重みには 0 と 0 以外の値が含まれます。ここで、ゼロ以外の値は重要度を示し、0 の値は入力が破棄されることを意味します。 最初のニューロンの Area と Distance to City がゼロではない、つまり最初のニューロンにとって重要であるという例を見てみましょう。他の 2 つの変数 (Bedrooms と Age) の重みは 0 であるため、最初のニューロンを通過しません。 最初のニューロンが 4 つの変数のうち 2 つだけを考慮するのはなぜかと疑問に思うかもしれません。都市から離れるほど、住宅価格は安くなりますが、これは不動産市場ではよくあることです。したがって、このニューロンが行っていることは、おそらく都市に近い家を探すことです。 ニューロンは多数存在し、各ニューロンはこれらの変数のさまざまな組み合わせを使用して同様の計算を実行します。基準が満たされると、ニューロンは活性化関数を使用して計算を実行します。 次のニューロンの重み付けされたシナプスは、都市までの距離と寝室である可能性があります。つまり、ニューロンは非常に柔軟に機能し、特定のものを見つけるために包括的に検索します。 ニューラルネットワークはどのように学習するのでしょうか? 例え話から始めましょう。ニューラル ネットワークを使用した学習は、まず特定のタスクを完了し、コーチから修正を受けて次回はより良い方法でタスクを完了するという、通常の学習方法と密接に関連しています。同様に、ニューラル ネットワークでは、ネットワークが入力にどのように応答するかをトレーナーが記述する必要があります。実際の値と予測値の差を使用して、エラー値 (コスト関数とも呼ばれます) が計算され、システムに送り返されます。 コスト関数: 実際の値と出力値の差の二乗の半分。 ネットワークの各層について、コスト関数が分析され、次の入力のしきい値と重みを調整するために使用されます。私たちの目標はコスト関数を最小限に抑えることです。コスト関数が低いほど、実際の値は予測値に近くなります。この方法では、ネットワークが学習を続けるにつれて、実行ごとにエラーが減少します。 結果のデータをニューラル ネットワーク全体に入力します。入力変数をニューロンに接続する重み付きシナプスだけが制御可能なので、実際の値と予測値に差がある場合は重みを調整する必要があります。これらを少し調整してニューラル ネットワークを再度実行すると、以前のものよりも小さくなると期待される新しいコスト関数が得られます。このプロセスは、コスト関数が可能な限り最小のレベルにまで削減されるまで繰り返されます。 上記のプロセスはバックプロパゲーションと呼ばれ、エラー値が最小限に抑えられるまでネットワークを通じて継続されます。 バックプロパゲーション 重みを調整するには 2 つの方法があります。 ブルートフォース法 単層フィードフォワード ネットワークに適しています。ここでは、多くの可能な重みを考慮する必要があります。このアプローチでは、U 字型曲線の下部にある重みを除くすべての重みを破棄します。最適な重みは、単純な消去法を使用して見つけることができます。このアプローチは、単一の重みのみを最適化する必要がある場合に適しています。しかし、多くの重みを持つ複雑なニューラル ネットワークの場合、次元が高いため、このアプローチは不可能になります。 バッチ勾配降下法 これは、異なる重みを持つモデルのトレーニング中に最小コスト値 (損失) を見つける一次反復最適化アルゴリズムです。 勾配降下法 勾配降下法では、重みを 1 つずつ調べて不適切な重みを除外するのではなく、関数の傾きを調べます。 傾き → が負の場合、曲線を下っていることを意味します。 このようにして、多数の誤った重みを排除することができます。 確率的勾配降下法 (SGD) 上の図に示すように、勾配降下法は凸曲線がある場合にうまく機能します。ただし、凸曲線がない場合、勾配降下法は失敗します。 「確率的」という言葉は、ランダムな確率に関連するシステムまたはプロセスを指します。したがって、確率的勾配降下法では、各反復でデータセット全体ではなく、いくつかのサンプルがランダムに選択されます。 確率的勾配降下法 SGD では、一度に 1 行のデータを取得し、そのデータをニューラル ネットワークに通して、重みを調整します。 2 行目では、実行してからコスト関数を比較し、重みを再度調整します。 SGD は局所最小値の問題を回避するのに役立ちます。一度に各行を実行し、計算を行うためにデータ全体をメモリにロードする必要がないため、勾配降下法よりもはるかに高速です。 注意すべき点の 1 つは、SGD は通常、典型的な勾配降下法よりもノイズが多いため、降下のランダム性により、最小値に到達するまでに通常より多くの反復が必要になることです。通常の勾配降下法よりも最小値に到達するまでに多くの反復が必要になりますが、それでも通常の勾配降下法よりも計算コストははるかに低くなります。したがって、ほとんどの場合、SGD はバッチ勾配降下法よりも優れています。 確率的勾配降下法を用いたニューラルネットワークのトレーニング ステップ 1 → 重みを 0 に近いが 0 ではない小さな数値にランダムに初期化します。 ステップ 2 → データセットの最初の観測値を入力レイヤーに入力し、各機能をノードに配置します。 ステップ 3 →順方向伝播: 予測が得られるまで、左から右へニューロンが順番にアクティブ化されます。各ニューロンの影響は重みによって制限されます。 ステップ 4 → 予測結果と実際の結果を比較し、誤差を測定します (コスト関数)。 ステップ 5 →バックプロパゲーション: 右から左へ、エラーが逆方向に伝播されます。重みは、エラーへの寄与に基づいて更新されます。学習率によって重みをどの程度更新するかが決まります。 ステップ6 → ステップ1~5を繰り返し、比較ごとに重みを更新します(強化学習) ステップ 7 → トレーニング セット全体が ANN を通過すると、完了です。 結論は 出典: techcrunch.com ニューラルネットワークはまったく新しい概念であり、大きな可能性を秘めています。これはさまざまな概念に適用でき、テスト段階で特定のバックプロパゲーションとエラー修正メカニズムを通じて学習できます。これらの多層システムは、将来的には、人間による修正を必要とせずに、学習するだけでエラーの可能性を減らすことができるようになるかもしれません。 |
<<: 多くの場所で顔認証の削除が通知されました!人工知能業界は衰退するのでしょうか?
>>: Googleのジェフ・ディーンの返答は計画を覆した。リー・フェイフェイの教え子ティムニットは解雇されたのではなく、自らの意志で辞職したことが明らかになった。
[[248121]] [[248122]]最近はアプリが満載のスマートフォンを持っている人はほとん...
多くの友人から、産業用ロボットのプログラミングにはどの言語が使用されるのかと尋ねられました。今回は、...
6月19日、生成型人工知能がハードウェア設計などの分野に参入し始めました。最近、ニューヨーク大学の...
英国の雑誌「ネイチャー」は26日、ロボット工学の最新成果を発表した。ロボットを動かすための重要な部品...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事を読んでいただければ、確率の基本原理を機械学習に応用できる可能性が 100% あります。機械...
人工知能はあらゆるところに存在し、私たちは気づかないうちに日常生活でそれを使用しています。人工知能は...
執筆者 | Yan Zheng制作:51CTO テクノロジースタック(WeChat ID:blog)...
ノアが編集制作:51CTO テクノロジースタック(WeChat ID:blog) Microsoft...
翻訳者 | 朱 仙中レビュー | Chonglou導入この記事は、ユーザーの好みに合わせてシンプルで...
画像、音声認識、自然言語処理、強化学習などの多くの技術分野において、ディープラーニングは非常に効果的...