ディープラーニングを理解するには、より低い次元からアプローチするべきでしょうか、それともより高い次元で考えるべきでしょうか?

ディープラーニングを理解するには、より低い次元からアプローチするべきでしょうか、それともより高い次元で考えるべきでしょうか?

今日のトピックは、複数選択問題から始めましょう。

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

次の説明のうち正しいものを 1 つ以上選択してください。

A. ニューラルネットワークは、入力を受け取って出力を生成する数学関数です。

B. ニューラル ネットワークは、多次元配列が流れる計算グラフです。

C. ニューラル ネットワークは複数の層で構成され、各層には「ニューロン」があります。

D. ニューラルネットワークは汎用的な関数近似器です。

あなたの答えは ________ です。

答えを発表します。正解は… ABCDです。

ちょっと混乱していますか?ニューラルネットワークの単一の統一された説明は存在しないのでしょうか?

セス・ワイドマン元Facebookのデータサイエンティストです。彼は、さまざまな業界の人々にデータサイエンスと機械学習を教えるために世界中を旅するよう招待されています。

[[390479]]

セス・ワイドマン、元Facebookデータサイエンティスト 出典: sethweidman.com

著書『Getting Started with Deep Learning in Python: Building CNNs and RNNs from Scratch』の中で、Weidman 氏は次のように書いています。

ニューラル ネットワークを説明する上で最も難しいのは、ニューラル ネットワークとは何かについての正しいメンタル モデルを伝えることです。これは主に、ニューラル ネットワークを理解するには 1 つのメンタル モデルではなく複数のメンタル モデルが必要であり、それぞれのメンタル モデルがニューラル ネットワークの動作の異なる (そしてそれぞれが重要な) 側面を説明するためです。

確かに、ニューラル ネットワークとディープラーニングは 3 次元の分野です。数学的レベルまたはコード レベルのみで学習すると、必然的に一般化に陥り、包括的な理解が得られなくなります。このため、ワイドマン氏は、ディープラーニング分野の全体像を把握するために、数学、概略図、Python コードの 3 つの次元で各概念を理解するという新しい学習方法を提案しました。

独自のディープラーニングの建物を構築したいと想像してください。アルゴリズムが好きだったり、視覚的な学習に慣れていたりしても、 「高次元で考える」ことによってのみ、多用途で精巧な建物を建てることができます。

ワイドマンは、導関数、ネストされた関数、連鎖などの概念を学習するための次の手順を提案しました。これらの基本概念はレンガのようなもので、これらを使用して、最終的には独自のディープラーニング ビルディングを構築します。

  • 1 つ以上の方程式を使用して数学の原理を説明します。
  • コーディング面接中にホワイトボードに描くような図表を用意します。
  • 対応する Python コードを指定します。

この学習方法を使用して、微分の概念をどのように理解できるかを見てみましょう。

微分はディープラーニングにおいて非常に重要な概念です。一般に、ある点における関数の導関数は、その点における入力に対する関数の出力の「変化率」として単純に考えることができます。

次元 1: 数学

まず、微分を数学的な次元で定義します。特定の入力値を変更したときに関数の出力がどの程度変化するかという制限を数値で表すことができます。

この制限は、Δ に非常に小さい値 (例: 0.001) を設定することによって数値的に近似できます。したがって、Δ = 0.001 の場合、導関数は次のように計算できます。

これは近似値ではありますが、完全な派生メンタルモデルの一部にすぎません。導関数を模式図の観点から理解してみましょう。

次元2: 概略図

関数曲線の接線を描くと、点 a における関数 f の導関数は点 a における線の傾きになります。この線の傾きは 2 つの方法で計算できます。最初の方法は、微積分を使用して実際に極限を計算することです。2 番目の方法は、下の図に示すように、直線 f の傾きを a−0.001 と a+0.001 で取得することです。

これを視覚化する別の方法は、関数を小さな工場として考え、その入力がワイヤで出力に接続されていると考えることです。導関数を解くことは、次の質問に答えることと同じです。関数の入力 a を少し上げると、工場の内部動作メカニズムに従って、出力はこの小さな値の何倍に変化しますか?

ディープラーニングを理解するには、2 番目の表現の方が 1 番目の表現よりも重要です。

次元3: Pythonコード

先ほど見た導関数の近似値は、次のようにコーディングすることで解くことができます。

P が E (ランダムに選択された文字) の関数であると言うとき、実際に意味するのは、f (E ) =P となる関数 f が存在するということです。つまり、オブジェクト E を受け取ってオブジェクト P を生成する関数 f が存在します。言い換えれば、P は関数 f を E に適用したときに生成される任意の関数値です。

以下のようにエンコードできます。

<<:  TransformerはCNNを超え、計算複雑性の問題を解決します

>>:  ビッグデータと人工知能を活用して英語教育の問題を解決する

ブログ    
ブログ    

推薦する

...

...

...

...

AI と Wi-Fi 6: 家庭内 Wi-Fi の革命を推進

固定ネットワークが F5G (第 5 世代) 時代に入るにつれ、家庭用 Wi-Fi テクノロジも、新...

...

...

ワールドカップで物議を醸したVARテクノロジーはどのようにして生まれたのでしょうか?

Wiredウェブサイトは、FIFAの話題のVAR(ビデオ・アシスタント・レフェリー)の誕生過程を明...

グラフニューラルネットワークが深くなるほど、パフォーマンスは向上しますか?

数十または数百の層を持つニューラル ネットワークの応用は、ディープラーニングの重要な機能の 1 つで...

...

ブロックチェーンを使用して AI スマートエコノミーを構築するにはどうすればよいでしょうか?

人工知能(AI)は、機械によって発揮される知能であるという点で人間の知能とは異なります。しかし、直接...

...

新型コロナウイルスはAIに影響を与えるか?人工知能は人間の介入なしには機能しない

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

量子コンピューティングとブロックチェーンの未来

量子コンピューティングはブロックチェーンを破壊するのか、それともより安全にするのか? 01 序文コン...

ビッグデータと人工知能のために生まれた新しい職業:アルゴリズム専門家

[[69076]]映画「マトリックス」でレオが銃弾の雨をかわす難しい動きを誰もが覚えているはずだ。こ...