Select Language

AI Technology Community

ニューラルネットワークとディープラーニング:ニューラルネットワークを使用して手書きの数字を識別すると

前言:

このシリーズは主に電子書籍 neural networks and deep learning を翻訳したものです。この本を翻訳することに決めたのは、この本が視覚分野のディープラーニングの理論面を非常に分かりやすく説明していると思ったからです。皆さんもこの本から多くのことを学べることを願っています。


人間の視覚システムは世界の一大奇跡です。次のような手書き数字の列を考えてみましょう。


ほとんどの人はこの数字列を504192と簡単に識別できます。この「簡単さ」は欺瞞的です。人間の各脳半球には

一次視覚野(primary visual cortex)と呼ばれるV1があり、

これには1億4000万個のニューロンが含まれており、ニューロン間には数百億の接続があります。しかも人間の脳にはV1だけでなく、V2、V3、V4、V5といった視覚野もあり、より複雑な画像認識タスクを処理することができます。人間の脳は超高性能コンピュータと見なすことができ、数千万年にわたる進化の結果、外界の視覚環境に非常によく適応しています。手書き数字認識は簡単なタスクではありませんが、人間は目に映るものを理解するのが得意です。すべてのプロセスが無意識のうちに行われるため、私たちは通常、視覚システムのこの能力に驚きません。

手書き数字を識別するプログラムを書こうとすると、このタスクの難しさが明らかになります。簡単な直感的な方法は、異なる数字の特有の形状を識別することです。たとえば、

「9」は上に円があり、下にフックがあります。しかし、これらの形状をアルゴリズムで表現するのは非常に難しいです。そして、アルゴリズムを実装しようとすると、さまざまな形状の海に迷い込み、このタスクは実行不可能に見えるかもしれません。

ニューラルネットワークは別の方法でこの問題を解決します。たくさんの手書き数字を訓練データセットとして使用します。次のようになります。


そして、これらの訓練データセットから数字を識別するシステムを開発します。つまり、ニューラルネットワークはこれらの例を使って、異なる手書き数字を識別するための内在的なルールを自動的に推論することができます。さらに、訓練例を増やすことで、ニューラルネットワークはより多くを学習し、精度を向上させることができます。したがって、通常、訓練例は上の100個だけでなく、数千個、数万個になることもあります。

この章では、手書き数字を学習して識別するニューラルネットワークプログラムを書きます。このプログラムはたった74行で、ニューラルネットワークのライブラリを一切使用していません。しかし、この短いプログラムで手書き数字を識別する精度は96%に達します。さらに、後の章では他のアイデアを追加して、識別精度を99%まで向上させます。実際、商用のニューラルネットワークは非常に良好に機能しており、銀行では小切手の処理に、郵便局では住所の識別に使用されています。

私たちが手書き数字を例に取るのは、これがニューラルネットワークを学ぶのに非常に良い例だからです。そして、この基礎の上に、ディープラーニングなどのより高度な技術を開発することができます。したがって、この本では、手書き数字の識別の例を何度も取り上げます。この本の後半では、これらのアイデアが他のコンピュータビジョンタスクや、音声、自然言語処理などの他の分野にどのように適用されるかについても議論します。

もちろん、この章の重点が手書き数字を識別するコンピュータプログラムを書くことだけにあるのであれば、この章は非常に短くなります。そこで、このプログラムを紹介する過程で、ニューラルネットワークの多くの重要な思想も紹介します。これには、2種類の非常に重要な人工ニューロン(パーセプトロンとシグモイドニューロン)と、ニューラルネットワークの一般的な学習アルゴリズムである確率的勾配降下法が含まれます。この本全体を通じて、私はなぜこのようにするのか、そしてニューラルネットワークを構築するためのいくつかの直感を説明することに重点を置きます。これは、ニューラルネットワークの仕組みだけを紹介するよりも長い内容になりますが、このような深い理解は非常に価値があります。この章を読み終えると、ディープラーニングとは何か、そしてなぜそれが重要なのかを理解するでしょう。

パーセプトロン

ニューラルネットワークを紹介する前に、まずパーセプトロン(perceptron)と呼ばれる人工ニューロンを紹介します。パーセプトロンは1950年代から1960年代にかけて、科学者のFrank Rosenblattによって提唱されました。彼はWarren McCullochとWalter Pittsの初期の研究に触発されています。現代では、他の人工ニューロンをより多く使用しています。その中で重要なニューロンの1つがシグモイドニューロンです。すぐにシグモイドニューロンについて説明します。しかし、シグモイドニューロンを理解するためには、まずパーセプトロンを理解する時間を費やす必要があります。

では、パーセプトロンはどのように機能するのでしょうか?パーセプトロンはいくつかの2値入力 [公式] を持ち、次のように2値出力を生成します。


簡単なパーセプトロンの模式図


上の図のパーセプトロンは3つの入力 [公式] を持っています。入力の数はもっと多くても少なくても構いません。Rosenblattは出力を計算するための簡単なルールを提案しました。彼は重み [公式] を導入しました。これらの実数は異なる入力の重要度を表しています。パーセプトロンの出力は0または1で、 [公式] がある閾値を超えるかどうかによって決まります。重みと同様に、閾値も設定する必要がある実数パラメータです。数学的な表現では次のようになります。

[公式]

これがパーセプトロンの仕組みの全てです。

これは基本的な数学モデルです。パーセプトロンは、さまざまな要素を考慮して決定を下すデバイスと見なすことができます。現実的ではないが、理解しやすい例を挙げましょう。週末が近づいており、あなたの街で週末にチーズフェスティバルが開催されることを知りました。あなたはチーズが大好きなので、週末に行くかどうかを決める必要があります。あなたは3つの要素を考慮して行くかどうかを決定します。

  1. 天気は良いか?

  2. あなたの恋人はあなたと一緒に行く気があるか?

  3. チーズフェスティバルへの交通は便利か?

これら3つの要素を [公式] と表します。天気が非常に良い場合、 [公式] ;そうでない場合 [公式] 。同様に、あなたの恋人があなたと一緒に行く気がある場合、 [公式] ;そうでない場合 [公式] 。最後の要素も同様です。

さて、あなたがチーズが大好きで、恋人が一緒に行かなかったり、交通が不便でも、あなたは非常に喜んで参加するとしましょう。しかし、天気が悪い場合は、行かないことを選ぶかもしれません。あなたはパーセプトロンを使ってこの決定プロセスをシミュレートすることができます。1つの方法は、天気の重み [公式] を6に設定し、他の2つの要素の重みをすべて2に設定することです。 [公式] の値が大きいことは、後者2つの要素に比べて、天気要素があなたの決定にとってより重要であることを示しています。最後に、パーセプトロンの閾値を5に設定します。これらの設定により、パーセプトロンは決定モデルを実現することができます。天気が良い場合は、他の要素がどうであれ、あなたは行くことを選びます;逆に、天気が悪い場合は、いかなる場合

post
  • 1

    item of content
このサークルでは、異なる業界における人工知能の応用、AIの应用场景および応用の特徴について主に紹介しています。これにより、ユーザーは人工知能の応用を迅速に理解することができます。