昨年から、AIの普及に関わる仕事がたくさん必要になりました。私は長い間、ディープラーニングがなぜ特に効果的で、AI が特定の問題を解決するのにどのように役立つのかを理解できるように、コンピューターサイエンスのバックグラウンドを持たない人にディープラーニングとは何かを説明する方法について考えてきました。 Quora の短い回答に触発されて、水の流れを使ってニューラル ネットワークを比較するというアイデアを思いつきました。私は銀行、教育、投資の各分野の人たちへのスピーチでこの比喩を使って説明しようとしましたが、結果は非常に良好でした。この記事は徐々に形になり、最近、Kai-Fu Lee 氏と私が共著した人気科学書「人工知能」に掲載されました。 【注意】特に重要な点として、本稿ではディープラーニングの概念を説明する際に、数式や数学的議論を意図的に避けています。水道管網を利用してディープラーニングを普及させるこの方法は、一般の人々にのみ適しています。数学とコンピューターサイエンスを理解している専門家にとって、このような説明は非常に不完全で不正確です。流量制御バルブの比喩は、ディープ ニューラル ネットワーク内の各ニューロンに関連付けられた重みの調整と数学的に同等ではありません。水道管ネットワークの全体的な説明では、コスト関数、勾配降下法、バックプロパゲーションなどのディープラーニングアルゴリズムの重要な概念も意図的に無視されています。専門家がディープラーニングを学びたい場合は、専門家によるチュートリアルから始める必要があります。 基本的に、ディープラーニングは、すべての機械学習手法と同様に、特定の現実世界の問題を数学的にモデル化し、その分野における同様の問題を解決するプロセスです。 まず、ディープラーニングは機械学習の一種です。 「学習」と呼ばれているので、当然、人間の学習プロセスといくつかの類似点があります。考えてみてください。人間の子供はどのように学ぶのでしょうか? 人間の子供はどのように学ぶのでしょうか?機械はどのように学習するのでしょうか? たとえば、多くの子供たちは識字カードを使って単語を学びます。昔の人が使っていた「尚大人孔一記」などのなぞり書き本から、今日の携帯電話やタブレットで子供たちに単語の認識を教える識字カードアプリまで、最も基本的な考え方は、子供たちに簡単なものから複雑なものまで順番に、各漢字のさまざまな書き方を繰り返し見させることです(年長の子供たちは、さまざまな書体の認識も学ばなければなりません)。見れば見るほど、覚えやすくなります。次に同じ単語を見たときには、簡単に認識できるようになります。 この興味深い読み書きのプロセスは単純に見えますが、実際には謎に満ちています。子どもたちの脳は、漢字を認識する際に、類似の画像に何度も刺激されて、それぞれの漢字に何らかの規則性をまとめているに違いありません。次に脳がこの規則性に一致するパターンを見ると、その文字が何であるかが分かります。 実際、同じ原理がコンピューターに単語を認識させることにも当てはまります。また、コンピューターは各文字のパターンを何度も繰り返し見て、コンピューターの脳 (プロセッサとメモリ) 内でパターンを要約する必要があります。コンピューターが将来同様のパターンを見たとき、それが以前に要約したパターンと一致している限り、コンピューターはそのパターンがどの文字であるかを認識します。 専門用語では、コンピュータが学習して繰り返し見るために使用する画像は「トレーニング データ セット」と呼ばれます。「トレーニング データ セット」では、ある種類のデータを別の種類のデータと区別するプロパティまたは特性は「特徴」と呼ばれます。コンピュータが「脳」でパターンを要約するプロセスは「モデリング」と呼ばれます。コンピュータが「脳」で要約したパターンは、私たちがよく「モデル」と呼ぶものです。コンピュータが画像を繰り返し見てパターンを要約し、単語を認識することを学習するプロセスは「機械学習」と呼ばれます。 コンピューターはどのように学習するのでしょうか?コンピュータによって要約されたルールは何ですか?どのような機械学習アルゴリズムを使用するかによって異なります。 非常にシンプルで、子供が読み方を学ぶ方法を模倣したアルゴリズムがあります。親や教師は、次のような経験をしたことがあるかもしれません。たとえば、子どもが読み書きを学び始めるとき、最初に「1」「2」「3」の区別を教えるときに、1 画で書かれた単語は「1」、2 画で書かれた単語は「2」、3 画で書かれた単語は「3」であると教えます。このルールは覚えやすく、使いやすいです。ただし、新しい文字を学び始めるときには、このルールは機能しない可能性があります。例えば、「口」も画数は3つですが、「三」ではありません。私たちは通常、四角形に形成されたものが「口」であり、横一列に並んだものが「3」であると子供たちに教えます。このルールは再び強化されましたが、それでも識字単語数の増加には耐えられません。すぐに子どもたちは、「田」も四角形だが、「口」ではないことに気付きました。このとき、子どもたちに「10」のマス目は「フィールド」であると伝えます。後々、私たちは子どもたちに、「田」の上が出ている字は「由」、下が出ている字は「甲」、上と下の両方が出ている字は「申」だと教えることになるでしょう。多くの子供たちは、このような段階的に豊かになる特徴的な規則の指導の下で、徐々に規則を要約し、新しい漢字を自分で覚えるようになり、その後何千もの漢字を習得します。 決定木と呼ばれる機械学習の手法がありますが、これは特徴ルールに基づいて単語を認識する上記のプロセスと非常によく似ています。コンピュータが「一」「二」「三」の 3 つの文字を認識するだけでよい場合、コンピュータは認識する漢字の画数を数えるだけでそれらを区別できます。認識対象となる漢字セット(トレーニングデータセット)に「口」と「田」を追加したところ、コンピュータの従来の判定方法が機能しなくなり、他の判定条件を導入する必要がありました。これを段階的に実行することで、コンピューターはより多くの単語を認識できるようになります。 添付の図は、コンピュータが 3 つの新しい漢字「由」、「甲」、「申」を学習する前と学習した後のコンピュータ内部の決定木の違いを示しています。これは、コンピュータに 3 つの新しい漢字とその特徴を示した後、コンピュータが子供のように新しい規則を要約して記憶し、より多くの漢字を「認識」したことを示しています。このプロセスは最も基本的な機械学習です。 もちろん、この決定木ベースの学習アプローチは単純すぎるため、拡張してさまざまな現実世界の状況に適応させることは困難です。その結果、科学者やエンジニアはさまざまな機械学習手法を発明しました。 たとえば、「由」「甲」「申」という漢字の特徴、つまり頭の出っ張りの有無や画の位置関係などを、特定の空間の一点にマッピングすることができます(ここでも数学用語が出てきますが、これは重要ではありません。「マッピング」の本当の意味を理解しているかどうかは、その後の読み方にまったく影響しません)。言い換えれば、トレーニング データ セット内のこれら 3 つの単語の多数の異なる書き方は、コンピューターには空間内の多数の点として表示されます。各単語の特徴を十分に抽出する限り、空間内の多数の点が、おおよそ 3 つの異なる範囲に分布することになります。 このとき、コンピューターにこれらの点のパターンを観察してもらい、単純なセグメンテーション方法 (空間に直線を描くなど) を使用して空間をいくつかの独立した領域に分割し、トレーニング データ セット内の各単語に対応する点が同じ領域に配置されるようにしてみます。このセグメンテーションが実行可能である場合、それはコンピュータが空間におけるこれらの文字の分布パターンを「学習」し、これらの文字のモデルを確立したことを意味します。 次に、新しい漢字の画像を見ると、コンピューターは画像を空間内の点に変換し、その点がどの文字領域に該当するかを判断します。これで、画像が何の文字であるかがわかるのではないでしょうか。 直線を引いて平面空間を分割する方法(添付の図を参照)では、数千の漢字と少なくとも数万通りの異なる表記法を収容することが困難であることに、すでに多くの人が気づいているかもしれません。漢字の異なる変形をそれぞれ空間内の点に対応させたい場合、各漢字に対応する点を異なる領域に分割して囲む数学的に簡単な方法を見つけることは非常に困難です。 長年にわたり、数学者やコンピューター科学者は同様の問題に悩まされてきました。機械学習の手法は絶えず改良され続けています。たとえば、複雑な高次関数を使用して、空間内の交差点を分離するために絶えず変化する曲線を描いたり、2 次元空間を 3 次元空間、4 次元空間、さらには数百、数千、数万次元の高次元空間に変換する方法を見つけたりします。ディープラーニングが実用化される前に、人々はディープラーニングではない従来の機械学習手法を数多く発明しました。これらの手法は特定の分野で一定の成功を収めていますが、世界は非常に複雑かつ多様で、変化し続けています。コンピューター用に選択したモデリング手法がいかに洗練されていても、世界のあらゆる物事の特性法則を真にシミュレートすることは困難です。これは、限られた色数の色を使って世界の真実の姿を描こうとする画家に似ています。どれほど優れた画家であっても、「リアリズム」を実現することは困難です。 では、コンピューターが世界の法則を記述できる基本的な手段を大幅に拡張するにはどうすればよいでしょうか?コンピュータに非常に柔軟な表現方法を設計し、大規模な学習プロセスでコンピュータが絶えず試行錯誤し、ルールを自らまとめ、最終的に現実世界の特徴に適合する表現方法を見つけるようにすることは可能でしょうか? さて、いよいよディープラーニングに入ります! ディープラーニングは、表現力が柔軟で、最終的に目標に近づくまでコンピューターが試行し続けることができる機械学習手法です。数学的な観点から見ると、ディープラーニングと上記の従来の機械学習手法の間には実質的な違いはありません。どちらの手法も、高次元空間における特性に基づいて、異なるカテゴリのオブジェクトを区別することを目的としています。しかし、ディープラーニングの表現力は従来の機械学習とは大きく異なります。 簡単に言えば、ディープラーニングとは、コンピュータが学習する必要があるものを大量のデータとして扱い、このデータを複雑なマルチレベルのデータ処理ネットワーク(ディープニューラルネットワーク)に投入し、このネットワークで処理された後に得られた結果データが要件を満たしているかどうかを確認し、満たしている場合はこのネットワークをターゲットモデルとして保持し、満たしていない場合は、出力が要件を満たすまでネットワークパラメータ設定を何度も調整し、根気強く続けることです。 これはまだ抽象的すぎて理解するのが難しいです。もっと直感的に説明しましょう。 ディープラーニングで処理するデータを情報の「水の流れ」とし、そのデータを処理するディープラーニングネットワークをパイプやバルブで構成された巨大な水道管網と仮定します。ネットワークの入口は多数のパイプの開口部であり、ネットワークの出口も多数のパイプの開口部です。この水道管網は多くの層に分かれており、各層には水の方向や流れを制御できる多くの調節弁があります。さまざまなタスクのニーズに応じて、水道管ネットワークの層数と各層の調節バルブの数は、さまざまな組み合わせになる場合があります。複雑なタスクの場合、制御バルブの総数は数万個以上になることもあります。水道管ネットワークでは、各層の各調節弁が水道管を介して次の層のすべての調節弁に接続され、前から後ろまで、層ごとに完全に接続した水流システムを形成します(これは比較的基本的な状況です。異なるディープラーニングモデルでは、水道管の設置方法と接続方法が異なります)。 では、コンピューターはどのようにしてこの広大なパイプのネットワークを使用して読み方を学習できるのでしょうか? 例えば、コンピュータが「田」という文字が書かれた絵を見ると、絵を構成するすべての数字(コンピュータでは、絵の中の各色の点は「0」と「1」で構成される数字で表されます)を情報の流れに変換し、入口から水道管網に流し込みます。 水道管ネットワークの各出口に、コンピューターに認識させたい漢字に対応する標識を事前に挿入します。このとき、「田」という漢字が入力されているため、水道管網全体に水が流れるときに、コンピュータは配管出口まで走って、「田」という漢字が記された配管出口から最も多くの水が流れ出ているかどうかを確認します。そうであれば、パイプライン ネットワークが要件を満たしていることを意味します。そうでない場合は、水道管網内の各流量制御バルブを調整して、「田」の形をした出口から最大量のデジタル水が「流出」するようにコンピューターに命令します。 これからしばらくは、多数のバルブを調整するため、コンピューターが忙しくなります。幸いなことに、コンピューターの計算速度は速く、力ずくの計算とアルゴリズムの最適化(実際には主に洗練された数学的手法ですが、ここでは数式について話しているのではなく、コンピューターが必死に計算しているところを想像するだけで十分です)により、常に迅速に解決策を提示でき、すべてのバルブを調整して出口の流量が要件を満たすようにすることができます。 次に、「申」という字を覚えるときには、同様の方法で、「申」という字が書かれた絵をそれぞれ多数の数字で構成された水の流れに変え、水道管網に流し込み、「申」という字が書かれた管の出口から最も多くの水が流れ出ているかどうかを確認します。そうでない場合は、すべての調節弁を再度調整する必要があります。今回は、先ほど学習した「田」という文字が影響を受けないようにし、新しい文字「申」が正しく処理されるようにする必要があります。 このプロセスは、すべての漢字に対応する水が水道管ネットワーク全体を希望どおりに流れるようになるまで繰り返されます。この時点で、水道管ネットワークはすでにトレーニング済みのディープラーニング モデルであると言えます。 例えば、添付の図は、「田」という文字の情報が水道管網に流される過程を示しています。 「田」という漢字が書かれた排水口からより多くの水が流れるようにするために、コンピューターは、水の流れが要件を満たすまで絶えず実験と調査を繰り返しながら、ほぼ必死になってすべての流量制御バルブを特定の方法で調整する必要があります。 このパイプラインネットワークで大量の識字カードが処理され、すべてのバルブが所定の位置に調整されると、水道管ネットワーク全体で漢字を認識できるようになります。この時点で、調整されたバルブをすべて「溶接」し、新しい水の流れが到着するのを待つことができます。 トレーニング中に行われるのと同様に、未知の画像はコンピューターによってデータ ストリームに変換され、トレーニング済みの水道管ネットワークに流し込まれます。このとき、コンピュータはどの出口から最も多くの水が流れ出ているかを観察するだけでよく、それが画像に書かれた単語になります。 簡単ですか?魔法みたいじゃないですか?ディープラーニングは、バルブを必死に調整して最良のモデルを「組み立てる」学習方法だというのは本当でしょうか?なぜ水道管ネットワーク全体の各バルブをこのように、またその程度まで調整する必要があるのでしょうか? 各最終出口の水の流れによって完全に決まるのでしょうか?これには本当に深い真実はないのでしょうか? ディープラーニングは、基本的に、人間の数学的知識とコンピュータアルゴリズムを使用して全体的なアーキテクチャを構築し、可能な限り多くのトレーニングデータとコンピュータの大規模な計算能力を組み合わせて内部パラメータを調整し、問題ターゲットに可能な限り近づくという、半理論的かつ半経験的なモデリング手法です。 ディープラーニングを導く基本的な考え方は実用的なものです。 それは世界のより複雑な法則を理解することではないでしょうか?次に、水道管網全体の調節弁の数を増やしていきます(層数を増やすか、各層の調節弁の数を増やします)。トレーニングデータや計算能力は大量にあるのではないですか?そして、多数の CPU と多数の GPU (グラフィックス プロセッシング ユニット、一般にはグラフィックス チップと呼ばれ、本来は描画やゲームプレイ専用で、ディープラーニングの計算に特に適している) で巨大なコンピューティング アレイを形成し、コンピューターが無数のバルブを必死に調整しながらトレーニング データに隠されたルールを学習できるようにします。おそらく、この実用的な考え方こそが、ディープラーニングの認識能力(モデリング能力)が従来の機械学習手法よりもはるかに強力である理由です。 実用主義とはすべてを理解しようとしないことを意味します。たとえディープラーニング モデルが非常に「スマート」になるようにトレーニングされ、問題を非常にうまく解決できたとしても、多くの場合、水道管ネットワーク全体を設計した人でさえ、パイプライン内の各バルブをなぜこのように調整する必要があるのかを説明できない可能性があります。つまり、人々は通常、ディープラーニング モデルが機能するかどうかしか知りませんが、モデル内の特定のパラメーターの値と最終モデルの認識能力との間にどのような因果関係があるのかを言うことは困難です。 これは本当に非常に興味深いことです。これまでで最も効果的な機械学習の方法は、多くの人々の目には、理解することはできても説明できない「ブラックボックス」です。 このことから生まれた哲学的な推測は、もし人々がコンピュータが何を学習したかは知っているが、学習の過程でコンピュータがどのようなルールを習得したかを説明できない場合、学習自体が制御不能になってしまうのではないか、というものです。 たとえば、開発がこの方向で進むと、コンピューターは私たちが学ばせたくない知識をひそかに学んでしまうのではないかと心配する人は多いでしょう。さらに、原理的には、ディープラーニングモデルのレイヤー数を無限に増やした場合、コンピューターのモデリング能力は現実世界の究極の複雑さに匹敵するようになるのでしょうか?答えが「はい」であれば、十分なデータがあれば、コンピューターは宇宙について可能な限りすべてを学ぶことができます。次に何が起こるでしょうか?コンピューターの知能が人間を上回るのではないかと少し心配していますか?幸いなことに、ディープラーニングが宇宙レベルの複雑な知識を表現できるかどうかについては、専門家の間ではまだ合意に達していません。人類は、少なくとも近い将来においては、比較的安全である。 もう 1 つ付け加えると、現在、大規模な計算を実行するときにディープラーニングがどのように見えるかを「見る」のに役立つ視覚化ツールがいくつか登場しています。たとえば、Google の有名なディープラーニング フレームワーク TensorFlow は、わかりやすい図を使用してディープラーニング操作を実行するネットワーク全体のリアルタイムの特徴を描画する Web ベースのツール (Tensorflow — Neural Network Playground) を提供します。 添付の図は、トレーニング データ セットを学習するときに、4 つの中間層 (隠し層) を持つディープ ニューラル ネットワークがどのように見えるかを示しています。この図では、ネットワークの各層と次の層の間のデータ「フロー」の方向とサイズを直感的に確認できます。このウェブページでは、ディープラーニング フレームワークの基本設定をいつでも変更し、ディープラーニング アルゴリズムをさまざまな角度から観察することもできます。これは、ディープラーニングを学び、理解するのに非常に役立ちます。 添付の図は、トレーニング データ セットを学習するときに、4 つの中間層 (隠し層) を持つディープ ニューラル ネットワークがどのように見えるかを示しています。この図では、ネットワークの各層と次の層の間のデータ「フロー」の方向とサイズを直感的に確認できます。このウェブページでは、ディープラーニング フレームワークの基本設定をいつでも変更し、ディープラーニング アルゴリズムをさまざまな角度から観察することもできます。これは、ディープラーニングを学び、理解するのに非常に役立ちます。 注: この記事は、Kai-Fu Lee と Yong-Gang Wang の著書「人工知能」からの抜粋です。 |
>>: ディープラーニングが世界に浸透し、世界を変えるほど強力なのはなぜでしょうか?
人工知能 (AI) と機械学習は、テクノロジーの意思決定者、業界の専門家、投資家にとって引き続き注目...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
これら 5 つの重要なヒントは、製薬会社の幹部がデータ サイエンスの道への扉を開くのに役立つかもしれ...
この論文では、現実世界の意思決定タスクにおける Auto-GPT エージェントの包括的なベンチマーク...
リアルタイムAI映像解析技術とは?リアルタイム AI ビデオ分析は、ビデオ ストリームを分析して、特...
このなぞなぞの答えを推測できますか?機械学習を学べば、どこにでも登場します...プログラマーであれば...
MOEA フレームワークは、多目的進化アルゴリズム (MOEA) を開発するための Java ライ...
世界全体、特に製造業は、パンデミック中に発生した問題や数年前の大規模なサプライチェーンの混乱から脱し...
[[413467]]モデルの並列処理により、ビジョンタスクのパフォーマンスが向上します。しかし、現...
皆さんこんにちは。本日のサミットで Apache PyFlink のコア技術を皆さんと共有できること...
コードに特化した Code Llama が登場したとき、誰もが、誰かがコードを定量化してスリム化し、...
[[204973]]序文:今月、テンセント研究所とIT Juziは共同で「2017年中米人工知能ベン...