ニューラルネットワーク: 知っておくべきこと

ニューラルネットワーク: 知っておくべきこと

ニューラル ネットワーク (NN) は、ほぼすべての分野で創造的な方法で問題を解決するのに役立ちます。この記事では、ニューラル ネットワークに関する関連知識を紹介します。これを読めば、ニューラル ネットワークの一般的な理解が得られます。ニューラル ネットワークはどのように機能するのでしょうか? ニューラル ネットワークを作成するにはどうすればよいでしょうか?

1. ニューラルネットワークの発展の歴史

ニューラル ネットワークの歴史を簡単に見てみましょう。ニューラル ネットワークの歴史について詳しく知りたい場合は、この Wikipedia の記事をご覧ください。

(https://en.wikipedia.org/wiki/Artificial_neural_network#History) が、この章の基礎となっています。

ニューラル ネットワークは、1943 年に Warren McCulloch と Walter Pitts によって初めて確立されたニューラル ネットワーク モデルに由来しています。彼らのモデルは完全に数学とアルゴリズムに基づいており、コンピューティング リソースが不足しているため、モデルをテストすることはできません。

その後、1958 年にフランク・ローゼンブラットがパターン認識が可能な最初のモデルを作成し、この状況を変えました。それがセンサーです。しかし、彼は表記法とモデルを提案しただけだった。実際のニューラル ネットワーク モデルはテスト不可能なままであり、このトピックに関するこれまでの研究はほとんどありません。

複数の層を持つ最初のテスト可能なニューラル ネットワークは、1965 年に Alexey Ivakhnenko と Lapa によって作成されました。

その後、機械学習モデルの実現可能性の高さから、ニューラルネットワークの研究は停滞しました。多くの人は、これが 1969 年にマービン・ミンスキー氏とシーモア・パパート氏が書いた「パーセプトロン」という本によって引き起こされたと考えています。

しかし、この停滞期間は比較的短期間でした。 6 年後の 1975 年、ポール・ワーボスはバックプロパゲーションを提案しました。これにより XOR 問題が解決され、ニューラル ネットワークの学習効率が向上しました。

1992 年に、最大プーリングが提案されました。これは、変換不変で変形に対して堅牢であるため、3D オブジェクトの認識に役立ちます。

2009 年から 2012 年にかけて、Jürgen Schmidhuber の研究グループが作成したリカレント ニューラル ネットワークとディープ フィードフォワード ニューラル ネットワークは、パターン認識と機械学習の分野で 8 つの国際コンテストで優勝しました。

2011 年、ディープラーニング ニューラル ネットワークは、畳み込み層と最大プーリング層を組み合わせ、その出力を複数の完全接続層に渡し、さらに出力層に渡すようになりました。これらは畳み込みニューラルネットワークと呼ばれます。

この後もさらに研究が続けられる予定です。

ニューラルネットワークとは何ですか?

ニューラル ネットワークについて考える良い方法は、それを複合関数として考えることです。データを入力すると、データが出力されます。

ニューラル ネットワークの基本的なアーキテクチャは、次の 3 つの部分で構成されます。

  • ユニット/ニューロン
  • 接続/重み/パラメータ
  • バイアス

これらは建物の「レンガ」と考えることができます。建物に持たせたい機能に応じてレンガを配置します。セメントは重さです。どれだけ重くても、レンガが足りなければ建物は崩壊してしまいます。ただし、最小限の精度(最小限のレンガを使用)で建物を稼働させ、徐々にアーキテクチャを構築して問題を解決することもできます。

重み、バイアス、単位については、後の章で詳しく説明します。

1. ユニット/ニューロン

ニューロンは、ニューラル ネットワーク アーキテクチャの 3 つの部分の中で最も重要度が低い部分であり、重みとバイアスを含み、データが渡されるのを待機する関数です。データを受け取った後、いくつかの計算を実行し、アクティベーション関数を使用してデータを範囲に制限します (ほとんどの場合)。

これらのユニットは、重みとバイアス項を含むボックスとして想像されます。箱は両端から開きます。一方の端はデータを受信し、もう一方の端は変更されたデータを出力します。データはまずボックスに入り、重みがデータに掛けられ、次に掛けられたデータにバイアス項が追加されます。これはユニットですが、関数としても考えることができます。この関数は、次の直線の方程式に似ています。

直線の方程式が複数あると想像してください。2 つを超えると、ニューラル ネットワークの非線形性が促進される可能性があります。これからは、同じデータポイント(入力)に対して複数の出力値を計算します。これらの出力値は別のユニットに送信され、ニューラル ネットワークが最終的な出力値を計算します。

2. 重み/パラメータ/接続

ニューラル ネットワークの最も重要な部分として、これら (およびバイアス項) は、ニューラル ネットワークを使用して問題を解決するために学習する必要がある値です。それがあなたが今知る必要があることです。

3. 偏見

これらの数値は、ニューラル ネットワークが重みをデータに乗算した後に追加すべきと考える値を表します。もちろん、それらは間違っていることが多いですが、ニューラル ネットワークは最適なバイアス項を学習します。

4. ハイパーパラメータ

ハイパーパラメータは手動で設定する必要があります。ニューラル ネットワークをマシンとして考えると、マシンの動作を変更するノブはニューラル ネットワークのハイパーパラメータになります。

私の他の記事を読んでみてください

(https://towardsdatascience.com/gas-and-nns-6a41f1e8146d) を参照して、ニューラル ネットワークのハイパーパラメータを最適化する方法を学習します。

5. 活性化関数

マッピング関数とも呼ばれます。これらは、x 軸上のデータを受け取り、限られた範囲内の値を出力します (ほとんどの場合)。ほとんどの場合、ユニットの大きな出力を小さな値に変換するために使用されます。選択したアクティベーション関数によって、ニューラル ネットワークのパフォーマンスが大幅に向上または低下する可能性があります。必要に応じて、ユニットごとに異なる活性化関数を選択できます。

一般的な活性化関数をいくつか示します。

(1)シグモイド

シグモイド関数

(2)タン

tanh関数

(3) ReLU: 正規化線形ユニット

整流線形単位関数

(4) リーキーReLU

リーキーReLU関数

5. レイヤー

これが、ニューラル ネットワークがあらゆる問題において複雑性を増す理由です。レイヤー(ユニット付き)を追加すると、ニューラル ネットワーク出力の非線形性が増加します。

各レイヤーには一定数のユニットが含まれます。ほとんどの場合、ユニットの数は完全に作成者次第です。ただし、単純なタスクの場合、レイヤーが多すぎると不必要な複雑さが増し、ほとんどの場合、精度が低下します。逆に。

各ニューラル ネットワークには、入力層と出力層の 2 つの層があります。その間にある層は隠し層と呼ばれます。下の図に示すニューラル ネットワークには、入力層 (8 ユニット)、出力層 (4 ユニット)、および 3 つの隠し層 (それぞれ 9 ユニット) が含まれています。

ディープニューラルネットワーク

2 つ以上の隠し層と各層に多数のユニットを持つニューラル ネットワークはディープ ニューラル ネットワークと呼ばれ、ディープラーニングと呼ばれる新しい学習分野を生み出しました。上に示したニューラル ネットワークはその一例です。

3. ニューラル ネットワークが学習すると何が起こりますか?

ニューラル ネットワークに問題を解決する方法を教える最も一般的な方法は、勾配降下法を使用することです。勾配降下法の詳細については、以下を参照してください。

https://hackernoon.com/gradient-descent-aynk-7cbe95a778da.

勾配降下法の他に、ニューラル ネットワークをトレーニングする一般的な方法として、バックプロパゲーションを使用する方法があります。このアプローチを使用すると、ニューラル ネットワークの出力層のエラーは、微積分の連鎖律を介して後方に伝播されます。微積分の知識がない初心者にとっては理解しにくいかもしれませんが、怖がる必要はありません。バックプロパゲーションの詳細については、以下をお読みください。

http://neuralnetworksanddeeplearning.com/chap2.html をご覧ください。

ニューラル ネットワークをトレーニングする際には、考慮すべき点が数多くあります。しかし、初心者にとっては、1つの記事ですべてを学ぶ必要はありません。

4. 実装の詳細(プロジェクトのすべての要素をどのように管理するか)

プロジェクト内のすべての要素を管理する方法を説明するために、XOR ロジック ゲートを学習する小さなニューラル ネットワークを備えた Jupyter Notebook を作成しました。 Jupyter Notebook アドレス: https://github.com/Frixoe/xor-neural-network/blob/master/XOR-Net-Notebook.ipynb。

ノートブックの内容を確認して理解すると、基本的なニューラル ネットワークの構築方法について大まかな理解が得られるはずです。

ノートブックによって作成されたニューラル ネットワークのトレーニング データは、データを配置する一般的な方法であるマトリックスに配置されます。マトリックスの寸法はプロジェクトによって異なる場合があります。

大量のデータは通常、トレーニング データ (60%) とテスト データ (40%) の 2 つのカテゴリに分類されます。ニューラル ネットワークは最初にデータを使用してトレーニングされ、次にテスト データでネットワークの精度がテストされます。

5. ニューラルネットワークに関する詳細情報(その他のリソースへのリンク)

ニューラル ネットワークの理解がまだ難しい場合は、次のリソースをお勧めします。

ユーチューブ:

  • シラジ・ラヴァル (https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A)
  • 3Blue1Brown(https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw)
  • コーディング トレイン (https://www.youtube.com/playlist?list=PLRqwX-V7Uu6aCibgK1PTWWu9by6XFdCfh)
  • ブランドン・ローラー (https://www.youtube.com/channel/UCsBKTrp45lTfHa_p49I2AEQ)
  • 巨大なニューラルネットワーク (https://www.youtube.com/channel/UCrBzGHKmGDcwLFnQGHJ3XYg)
  • ヒューゴ・ラロシェル (https://www.youtube.com/channel/UCiDouKcxRmAdc5OeZdiRwAg)
  • ジャブリルス (https://www.youtube.com/channel/UCQALLeQPoZdZC4JNUboVEUg)
  • ルイス・セラーノ (https://www.youtube.com/channel/UCgBncpylJ1kiVaPyP-PZauQ)

コースラ:

  • トロント大学による機械学習のためのニューラルネットワーク (https://www.coursera.org/learn/neural-networks)
  • ディープラーニング スペシャライゼーション (https://www.coursera.org/specializations/deep-learning)、Andrew Ng 著
  • 国立研究大学高等経済学院によるディープラーニング入門 (https://www.coursera.org/learn/intro-to-deep-learning)

オリジナルリンク: https://towardsdatascience.com/nns-aynk-c34efe37f15a

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  人工知能 + ブロックチェーンの開発動向と応用研究レポート(受賞リスト付き)

>>:  ベースライン モデルから始めます。最初はモデルが醜く見えるかもしれませんが、心配しないでください。

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能でカスタマーサービスエージェントを強化する方法

今日、ほぼすべての分野やビジネスが何らかの変革を遂げており、多くの企業がデジタル技術の波の推進力を受...

テキスト処理から自動運転まで: 機械学習で最もよく使われる 50 の無料データセット

機械学習分野のオープンデータセットにはどのようなものがあるでしょうか。Gengo は最近、高品質の無...

...

ビジネスコミュニケーションで機械学習を活用する9つの方法

人工知能 (AI) と機械学習 (ML) は、職場でも家庭でも、私たちの生活に欠かせないものになりつ...

スマートポインターボックスの謎を解明

[[416792]]この記事は、董澤潤氏が執筆したWeChat公開アカウント「董澤潤の技術ノート」か...

[詳細] 人工知能の生涯を10分で読む

AIは2016年以来最もホットなキーワードであり、それについてはさまざまな意見があります。バブルがは...

岐路に立つ交通:自動運転の未来はどうなるのか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

業界の未来を牽引する8つのデジタル変革トレンド

さらに、2024 年までに、産業企業は自己管理テクノロジーと再設計された運用プロセスを組み合わせるこ...

そうだ!機械学習を使用してビリビリの株価動向を予測する

[[418764]]この記事では、主にPythonを使用してビリビリの株価を分析する方法について説明...

ロボットの時代が来ます。私たちは全員失業してしまうのでしょうか?

[[415590]]ボストン・ダイナミクス社が開発したヒューマノイドロボット「アトラス」、ロボット...

マスク氏のロボットショーは何百万人ものネットユーザーを魅了した!

テスラロボットが家事を始める。マスク氏は最新の動画で、テスラのロボット「オプティマス・プライム」が服...

...

...