私は普通のAIニューロンです

私は普通のAIニューロンです

  [[345868]]

私はAIニューロンです

私はこの世界に生まれたばかりの AI ニューロンです。私にとってすべてがとても新しいです。

私の作品は人体のニューロンに少し似ているので、このように呼ばれています。

人体のニューロンは生物学的信号を伝達することができます。信号が入力されると、ニューロンはそれを処理し、他のニューロンに信号を出力します。そして、その信号は最終的に脳に伝達され、信号の意思決定と処理が完了します。

賢いコンピュータ科学者たちはインスピレーションを受けて、ニューロン関数というコードを発明しました。

私たちの世界では、私はただの普通のメンバーです。私のようなニューロンは何百、何千、あるいは何万もあります。私たちは層状の巨大なニューラルネットワークを形成しています。

すぐに私は隣のワークステーションで働くダバイと親しくなりました。彼は私より早く来て、その場所のことをずっとよく知っていました。

ダバイは、私たちのニューラルネットワークは画像認識のためのAIプログラムだと言いました。犬の写真を入力すれば、それがコーギーなのか、テディベアなのか、柴犬なのか、ハスキーなのかなど、判別することができます。

神経構造

ダバイの指導のもと、私はすぐに仕事のやり方を学びました。

ニューロンと呼んでいますが、その名前は神秘的に聞こえますが、実際はパラメータと戻り値を持つ普通の関数です。普通の関数が持つすべての機能を備えています。

  1. ニューロン(a)を定義します。
  2. w = [...]
  3. b = ...
  4. ...

パラメータ a は配列です。配列内の各要素を a1、a2、a3 などと呼びます。この a を使用して、ニューロンが受信する一連の信号をシミュレートします。

人間のニューロンがどのようにして入力された生物学的信号を処理するのかは分かりませんが、かなり複雑だと思います。しかし、ここでは非常に簡単です。各入力値に特定の重みを設定し、単純な加重合計を実行して、最後にオフセット値を追加します。

また、重みを意味する w という配列もあります。その中の各要素は w1、w2、w3... と呼ばれ、オフセット値はバイアスと呼ばれます。

私が何をするかはお分かりでしょう。渡された a の各要素を w の各要素で乗算し、それらを合計し、最後にオフセット値を次のように追加します。

そういえば、ふと疑問が浮かんだので、ダバイに聞いてみることにしました。

「ダバイ、これらのデータはどこから来たのですか?」

「それは前の層のニューロンによって送信されました。」

「彼らはどこからデータを入手しているのですか?」私は問題の真相を突き止めるために尋ねました。

ダバイは私をドアまで連れて行き、別のエリアを指差してこう言った。「ほら、そこがデータ前処理部門だよ。入力画像からピクセルの色情報を抽出し、それをニューラル ネットワーク部門に渡して分析する役割を担っているんだ。」

「私たちに任せる?それからどうする?」

「私たちのニューラル ネットワークは高度な機械のようなもので、私たちはその部品の 2 つにすぎません。異なる重みの値は、画像上の異なる位置にあるピクセルの関心度を表します。実行が開始され、画像データが供給されると、各ニューロンが動作を開始し、結果をレイヤーごとに中継して、最終的に犬の品種を識別します。」

ニューラルネットワークトレーニング

私たちがチャットをしていると、突然、放送のプロンプト音が鳴り、全員がチャットをやめて自分のワークステーションに戻りました。

[[345872]]

「これは何のためですか?なぜそんなに大ごとなのですか?」私はダバイに尋ねました。

「早く座ってください。訓練が始まります」とダバイは言った。

「訓練?何を訓練するの?」

「私たちが使用する重みとオフセットはどこから来ると思いますか?それらは継続的なトレーニングを通じて得られます。」

私たちが少し言葉を交わす前に、データが届き始めました。以前、Dabai が教えてくれたことによると、入力データにそれぞれの重みを掛けて合計し、最後にバイアスを加えて最終結果を得ました。全体のプロセスは非常に簡単でした。

計算結果を次のニューロン層に渡します。

ダバイはそれを見てすぐに私を止めて言いました。「待ってください!ただ渡すわけにはいきませんよ。」

"ほかに何か?"

ダバイは私の後ろにいる別の男を指差して、「それが活性化関数だ。まずは彼に任せよう」と言いました。

「活性化関数は何をしますか?」私はダバイに尋ねました。

「活性化とは、入力信号の大きさに応じて、それに応じた大きさの出力信号を生成することです。これは、人間のニューロンが神経信号に反応する度合いを模倣しています。針で皮膚を刺すようなものです。力が強くなると、体の痛みが徐々に強くなります。ほぼ同じ原理です。」

私はダバイの説明を聞いて、理解したようにも、よく理解していないようにも頷いた。

その後、他にも活性化関数がいくつかあることを知りました。私がよく扱うのは次のような関数です。

  • シグモイド
  • タン
  • レル
  • 漏れたレル

活性化関数が処理されると、ようやく次のニューロン層に引き渡され、休憩する準備が整います。

席に着くとすぐに、ホールからアナウンスが聞こえてきました。

[[345873]]

すると、また新たなデータが届きました。休む暇もないようで、また慌てて忙しくなりました。

数時間これに忙しく、同じ作業を何万回も繰り返していたのに、ほとんど疲れ果てていました。

損失関数と最適化手法

休憩時間を利用して、私は再びダバイと会話を始めた。

「ダバイ、私たちは何万回も行ったり来たりしたばかりなのに、何をしているんですか?」

大白も息切れしていました。一息ついてこう言いました。「これはネットワークトレーニングといいます。さまざまな犬種の犬の写真を大量に分析することで、適切な重みとオフセット値をトレーニングすることができます。こうして犬種を認識できるようになります。将来、新しい犬の写真が与えられたとき、私たちは学んだ知識を使って犬を区別できるようになります!」

「どうやってこんなトレーニングをするんですか?詳しく教えていただけますか?」私はさらに尋ねました。

「先ほど、放送で重みとオフセット値を更新するように通知され続けているのを見ました。このトレーニングは、ニューロンの各層の重みとオフセット値を常に変更しようとすることで、継続的に最適化し、最も適切な値を見つけることで、犬種の識別において最高の精度を実現できるようにするものです」とダバイ氏は語った。

「修正を試み続けるのですか?ニューロンがこんなにたくさんあるのに、私たちはただ運に頼るしかないのですか?」

ダバイは私に向かって目を丸くして言いました。「ただ盲目的に試すなんて、どうやってできるんだ?それでは永遠に時間がかかる。私たちはこれを、自ら学習できるディープラーニングニューラルネットワークと呼んでいるんだ!」

彼がそう言ったとき、私はさらに混乱しました。「どうやって勉強するんですか?」

「実際は非常に簡単です。まず、重みオフセット値のセットを選択し、画像認識を 1 回実行して、認識結果と実際の結果のギャップの大きさを確認します。ギャップがフィードバックされたら、ギャップが 0 に近づくまで、重みとオフセットを調整してギャップを狭め続けます。このようにして、認識精度は 100% に近づきます。」

「まあ、それは簡単そうに聞こえますが、まだ多くの疑問があります。このギャップをどうやって測定するのですか?具体的には、重量オフセットをどのように調整するのですか?調整はどの程度にすべきですか?」私の小さな頭の中に多くの疑問符が浮かびました。

ダバイは信じられない表情を浮かべた。「お若いのに、なかなかいい質問ですね!ニューラル ネットワークの核となる概念を 3 つ同時に質問したんですね。」

「その3人は誰ですか?早く教えてください。」

ダバイは水を一口飲んで、少し間を置いてから言った。「まず、このギャップをどうやって測ればいいのでしょうか。私たちの部署にはこの仕事の専門家がいます。彼は損失関数を担当しており、特に出力結果と実際の結果のギャップを定量化するために使われています。定量化する方法はたくさんあります。暇なときに彼と話をしてください。」

「それで2番目は?」

「第二に、調整方法には、ニューラルネットワークの中核概念である最適化手法が具体的に関係しています。私たちの部門で最もよく使用される手法は、勾配降下法と呼ばれています。この手法は少し複雑で、現時点では明確に説明できません。おそらく、微分法を使用して損失関数の損失値を小さくする方法を見つけることです」とダバイは辛抱強く説明を続けました。

「では、3番目のコアコンセプトは何ですか?」

「調整範囲について質問したのではありませんか?調整範囲が小さすぎると、トレーニングが遅くなりすぎて、何度もトレーニングする必要があります。調整範囲が大きすぎると、誤って最適値を逃した場合、損失関数の結果が前後に揺れ、収束に失敗します。そのため、学習率と呼ばれる値があり、通常はプログラマが経験に基づいて設定します。」

私がまだダバイの説明に夢中になっていると、再び放送が流れた。

[[345878]]

プログラマーが学習率を修正したようです。元気を出して仕事を続けなければなりません。トレーニング目標にいつ到達できるか本当にわかりません〜

この記事はWeChatのパブリックアカウント「プログラミング技術宇宙」から転載したものです。以下のQRコードからフォローできます。この記事を転載する場合は、Programming Technology Universe の公開アカウントにお問い合わせください。

<<:  人工知能のトレンドが電子商取引業界のビジネスを変える

>>:  アルゴリズム図: スタック内の最小値を見つけるにはどうすればよいでしょうか?

ブログ    
ブログ    

推薦する

AIにソフトウェア開発を教える: IBMオープンソースデータセットProject CodeNetには1,400万のコード例が含まれている

[[399492]] Big Blue は、AI ベースのプログラミング ツール向けの充実したトレー...

AIチップブラックテクノロジーインベントリ

ビッグデータとディープラーニングの利用が増えるにつれて、基盤となるハードウェアとチップに新たな要件が...

...

...

Google X、手作業でラベル付けすることなく一目で対象部品を見つけられるグリッパーアームをオープンソース化

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

誰でも簡単にウェブサイトを構築できる 5 つの AI ウェブサイトビルダー

今日は、5 つの AI ウェブサイト ビルダー ツールをご紹介します。これらの AI ツールを使用す...

...

...

Facebook、ロボット開発プラットフォームDroidletをオープンソース化

最近、Facebook は、自然言語処理とコンピューター ビジョンを使用してロボットが周囲の世界を理...

TOP50 人工知能のケーススタディ: AI は単なる誇大宣伝ではなく、努力によって実現される

AIは自慢するだけでなく、実践を通じて達成されます。コンセプトがどんなに優れていても、結果が重要です...

...

...

機械学習における再現率、精度、正確さの指標は何ですか?

以前の記事では、Naive Bayes、KNN、KMeans、EM、線形回帰、ロジスティック回帰など...

人工知能とロボットが医療業界を「支配」していますが、あなたは安心していますか?

人間社会が発展するにつれて、知性は新たな生産要素になりました。近年、人工知能産業の発展は爆発的な成長...

世界初のAI生成薬がヒト臨床試験に進出

6月30日のニュースによると、今週、完全に人工知能によって設計された世界初の医薬品が人間の臨床試験段...