機械学習に関する古いジョークがあります。 機械学習は高校のセックスのようなものです。誰もがやっていると言いますが、実際にやっている人はいませんし、実際に何なのか誰も知りません。[1] 翻訳するとおそらく次のようになります: 機械学習は高校のセックスのようなものです。誰もがそれをやったと言うが、実際にやった人は誰もいないし、それが何なのか誰も本当に知らない。
つまり、ある程度、機械学習にはわかりにくく難しい部分がたくさんあります。機械学習モデルやニューラルネットワークは通常、TensorFlow や sklearn などのツールの助けを借りてすぐに実行できますが、舞台裏で何が起こっているのかを実際に理解するのはまだ簡単ではありません。この記事では、ニューラル ネットワークを直感的に説明してみたいと思います。諺にもあるように、「聞くことは信じること、見ることは信じること」です。この記事の目的は、「視覚化」手法を使用して、ニューラル ネットワークの実行時に何が行われるかを自分の目で「見る」ことです。 この記事には数式は一切登場しませんので、技術者以外の人でも理解できると思います。そう願っています^-^ 最も単純なニューラルネットワーク 現在、画像認識や NLP で使用されているディープ ニューラル ネットワークは、数十のレイヤーと数十万、あるいは数百万のモデル パラメータを備えた非常に複雑なネットワーク構造を開発しています。このようなニューラル ネットワークは理解するのが非常に難しく、計算するには大量の計算能力が必要です。 したがって、最も単純なケースからより複雑なケースへと進んでいきます。 まず、単純な「2分類」の問題を考えてみましょう。ランダムに生成されたデータセットを以下に示します。 上の図には合計 160 個のポイント (赤と青を含む) が表示されており、それぞれがデータ サンプルを表しています。明らかに、各サンプルには 2 つの特徴が含まれているため、各サンプルは 2 次元座標系の点で表すことができます。赤い点はサンプルが最初のカテゴリに属していることを示し、青い点はサンプルが 2 番目のカテゴリに属していることを示します。 バイナリ分類問題は、分類モデルをトレーニングし、上図の 160 個のサンプルで構成されるトレーニング セットをカテゴリに応じて 2 つの部分に分割することとして理解できます。注: この記述はあまり厳密ではありません。上図のサンプルはトレーニングにのみ使用され、トレーニングされたモデルは、このトレーニング セットに「属さない」他のサンプルを分類できる必要があります (ただし、現時点ではこれについては考慮していないため、このステートメントの詳細は無視できます)。 このバイナリ分類タスクを完了するには、選択できる機械学習モデルが多数あります。しかし、現在の私たちの目的はニューラル ネットワークを研究することであり、この分類問題を解決するための最も単純なニューラル ネットワークを設計することができます。以下のように表示されます。 このニューラル ネットワークは非常にシンプルで、入力層が 1 つ、出力層が 1 つ、ニューロンが合計 3 つしかありません。 簡単な数学的分析を行うと、わずか 2 層からなるこのニューラル ネットワーク モデルが、実際には従来の機械学習の LR モデル (ロジスティック回帰) と同等であることが簡単にわかります。つまり、これは線形分類器であり、そのトレーニングは、赤い点と青い点を分離するために前の 2 次元座標平面で直線を見つけることと同等です。 赤い点と青い点の位置分布を見ると、このような直線は簡単に見つけられる(または覚えられる)ことがわかります。実際、上図のこの単純なニューラル ネットワークは、トレーニング後に 100% の分類精度を簡単に達成できます。 ここで、データ セットが次のようになっているとします (赤い点は、青い点の左側と右側の 2 つのクラスターに分割されます)。 以前の 2 層ニューラル ネットワークをそのまま使用して、赤い点と青い点を分離する直線を描こうとすると、明らかに不可能です。これで、3 つのクラスターに分割されたデータ セットは「線形に分離可能」ではなくなったと言えます。実際、最新のデータセットでは、従来の 2 層ニューラル ネットワークでは、どのようにトレーニングしても、約 60% ~ 70% の分類精度しか達成できません。 分類の精度を向上させるには、赤い点と青い点が完全に分離されるように曲線を描くという、より直感的なアイデアが考えられます。これは、元の入力データに対して非線形変換を実行することと同じです。ニューラル ネットワークでは、隠れ層を追加することでこの非線形変換を実行できます。変更されたニューラル ネットワークは次のとおりです。 修正されたニューラル ネットワークでは、2 つのシグモイド ニューロンを含む隠し層が追加され、入力層と隠し層が完全に接続されていることがわかります。実際、このニューラル ネットワークを隠し層で再トレーニングすると、分類精度が 100% (または 100% に非常に近い) に戻ることがわかります。これはなぜでしょうか? ニューラル ネットワークの計算は、次のように考えることができます。ネットワークのレイヤーが渡されるたびに、サンプル空間 (そこに含まれる各サンプル データを含む) が変換されることになります。つまり、入力サンプルデータは、中間の隠れ層を通過するときに変換されます。また、隠れ層の活性化関数はシグモイドを使用するため、この変換は非線形変換となります。 そこで当然の疑問が、この隠れ層の非線形変換後の入力サンプルはどうなるのか、というものです。下の図では、隠れ層の 2 つのニューロンの出力をプロットしています。 興味深い現象が見つかりました。変換されたサンプル データ ポイントは依然として 3 つのクラスターに分割されていますが、赤いポイントは青いポイントの両側に存在しなくなりました。 2 つの赤い点の集まりは 1 つのコーナーに押し込まれ、青い点は別のコーナーに押し込まれます。グラフが「線形に分離可能」になったことが簡単にわかります。ニューラル ネットワークの最後の出力層で処理された後の隠れ層の出力データは、線形分類器を通過するのと同等です。赤い点と青い点を直線で簡単に分離できます。 隠し層の出力画像から、いくつかの詳細も確認できます。 すべてのデータ座標(X軸またはY軸)は(0,1)の範囲内にあります。シグモイド活性化関数の特性により、実数領域は (0,1) の間にマッピングされます。 すべてのデータがどこかの隅に落ちていることがわかりました。これは偶然ではなく、シグモイド活性化関数の特性によるものです。シグモイド ニューロンが「飽和」まで完全にトレーニングされると、通常は 0 または 1 に近い値を出力し、(0,1) の中央に近い値を出力することはほとんどありません。 まとめると、これまでの分析から、このような変換プロセスを大まかに確認できます。つまり、入力サンプルは元の空間では「線形に分離可能」ではありませんでしたが、隠れ層の変換処理後に「線形に分離可能」になり、最後に出力層で線形分類を行った後、バイナリ分類タスクが正常に完了しました。 もちろん、この例は非常に単純であり、最も単純なニューラル ネットワーク構造にすぎません。しかし、より複雑なニューラル ネットワークの場合でも、原理は同様です。入力サンプルがネットワーク変換のレイヤーを通過するたびに、以前よりも「分離可能」になります。もう少し複雑な例を見てみましょう。 手書き数字認識 MNIST ここで、「手書き数字認識」の問題について考えてみましょう。 機械学習の学術コミュニティには、MNIST[2]と呼ばれる公開データセットがあります。ニューラル ネットワークを使用して MNIST データを認識することは、ニューラル ネットワークとディープラーニングの分野における「Hello World」とみなすことができます。 MNIST データセットには、手書きの数字画像が 70,000 枚あります。これらは次のようになります: 各画像は28×28の白黒画像で、各ピクセルは[0,255]の間のグレースケール値で表されます。 MNIST デジタル認識問題は、このような 28 ピクセル × 28 ピクセルの画像を与え、プログラムを使用してそれが 0 から 9 までのどの数字であるかを判別することです。 この問題の場合、畳み込みニューラル ネットワーク (CNN) を使用したこれまでの最高の認識率は 99.79% です。ここでは問題を複雑にしたくないので、通常の完全接続ニューラル ネットワークを使用して問題を解決します。私たちが使用するネットワーク構造は次のとおりです。 このニューラル ネットワークの入力と出力は次のように定義されます。
このニューラル ネットワークをトレーニングすると、約 98% の正しい認識率を簡単に得ることができます。では、このより広いニューラル ネットワークに対しても、以前の方法を使用して視覚的なイメージを描くことはできるのでしょうか? 次元削減 前のセクションでは、単純なニューラル ネットワークには入力層と非表示層の両方に 2 つのニューロンしかなかったので、それらの画像を 2D 座標平面にプロットできました。 MNIST ニューラル ネットワークの場合、入力層の画像を描画すると、784 次元あることがわかります。 784 次元の特徴ベクトルをプロットするにはどうすればよいでしょうか。これには、高次元データの視覚化の問題が関係します。一般的に言えば、人間の脳は 3 次元までの空間しか理解できません。3 次元を超える空間については、抽象的な思考に頼るしかありません。 高次元空間を直感的に理解することがいかに難しいかを感じるために、簡単な例を想像してみましょう。
さて、4 次元空間についての最後の段落をまだ理解できるのであれば、それはあなたがそれを非常に注意深く読み、読みながら考えていたということを意味します ^-^ しかし、いずれにせよ、4 次元空間の状況は十分に厄介です (論理的ではありますが想像できません)。ましてや、784 次元空間の幾何学的構造を想像することはできません! そのため、高次元空間のデータを3次元または2次元空間に縮小し、それを視覚的に描画して、一定の「直感的な理解」を実現する次元縮小技術が必要になります。 では次元削減とはどのような操作なのでしょうか? よく考えてみると、現実世界では次元削減の場面に何度も遭遇しています。たとえば、次の図をご覧ください。
これは100年以上前の有名な絵画で、「グランド・ジャット島の日曜日の午後」と呼ばれています。この絵では、海岸の遠くに強い奥行き感を感じることができます。しかし、どんな絵画も二次元平面上に描かれます。したがって、画家は 3 次元のシーンを 2 次元に投影する必要があり、これは一種の「次元削減」プロセスです。同様に、私たちが普段カメラで撮る写真も、3 次元空間を 2 次元平面に「次元を縮小」します。この種の次元削減プロセスは広く普及しており、線形変換の一種である「射影変換」と呼ぶことができます。 別の例を見てみましょう。 写真の右側には世界の平面地図があります。本来、地球の表面は3次元空間上の球体ですが、上の世界地図は球体全体を2次元平面上に描いています。これを実現するために、地図製作者は当然球体を平らにする必要があり、一部の領域を引き伸ばしたり歪ませたりする必要があります。この描画プロセスはマッピングと考えることができます。つまり、地球の表面上の点が世界の平面地図上の点にマッピングされるのです。しかし、すべてのポイントのマッピングは同じ線形関係を満たさないため、これは非線形変換です。 上記の例が絵画、写真、世界地図のいずれであっても、3 次元を 2 次元に縮小します。しかし、機械学習では、高次元から 3 次元または 2 次元に次元を削減する必要があることがよくあります。線形次元削減法である PCA (主成分分析)、非線形次元削減法である MDS (多次元スケーリング) と t-SNE (t 分布確率的近傍埋め込み) など、さまざまな次元削減法が発明されてきました。 k近傍グラフと機械モデルに基づく次元削減可視化手法 上で述べたさまざまな次元削減方法には、それぞれ異なるアプローチと焦点があります。説明しようとするとスペースがかなり必要になるため、この記事では詳細には触れません。次の目標は、前のセクションで紹介したMNISTニューラルネットワークの直感的な視覚化を提供することであるため、ここではより直接的な(そして理解しやすい)アプローチ、つまりk-NNG(k-近傍グラフ)と力指向モデル[3][4]に基づく次元削減視覚化手法を採用します。 この方法のプロセスは次のように説明できます。
この方法では、高次元から低次元に縮小するときに、元の高次元空間のどの幾何学的特性が維持されるかに注目する必要があります。 前の描画プロセスの説明から、元の高次元空間で比較的近いノードは、バネの張力の作用により、最終的な2次元画像でも比較的近くなることが簡単にわかります。これを理解することによってのみ、低次元の画像を見て高次元の構造を理解することができます。 これで、MNIST ニューラル ネットワークを視覚化する準備が整いました。 MNISTの可視化 上図は、MINST ニューラル ネットワーク (784 次元) の入力層データを視覚化したものです。図中の各ノードは 784 次元のベクトルで表される画像を表します。図中の各色は 0 から 9 までの数字の 1 つを表します。つまり、合計 10 個のカテゴリのノードがあることになります。次のことがわかります。
上の図は、MINST ニューラル ネットワーク (128 次元) の中間隠し層の出力データを視覚化したものです。グラフ内の各ノードは依然として画像(つまり、隠れ層変換後の元の画像データに対応するデータ)に対応しており、128 次元のベクトルで表されます。グラフ内の各色は依然として 0 から 9 までの数字の 1 つを表し、合計で 10 個のカテゴリが存在します。次のことがわかります。
上図はMINSTニューラルネットワークの最終出力層出力データ(ソフトマックス処理後)の可視化画像(10次元)です。グラフ内の各ノードは依然として画像(つまり、ニューラル ネットワーク全体によって変換された後の元の画像データに対応するデータ)に対応しており、これは 10 次元のベクトルになります。グラフ内の各色は依然として 0 から 9 までの数字の 1 つを表し、合計で 10 個のカテゴリが存在します。次のことがわかります。
まとめ この記事では、ニューラル ネットワークの視覚化研究を通じて、元の特徴入力から始めて、ニューラル ネットワークの各層の変換処理が抽象化の点で問題の目標に近づいていることを発見しました。 MNIST 手書き数字認識問題を例に挙げてみましょう。目標は、画像を 0 から 9 までの 10 個のカテゴリのいずれかに分類するという、多重分類問題です。初期入力は元の画像ピクセル データです。各ネットワーク レイヤーの変換後、データは以前よりも「分離可能」になり、分類ターゲットに近づきます。 これは情報を統合する典型的なプロセスです。現実世界の多くの状況と同様に、複雑な詳細を効果的に統合することによってのみ、真の「知覚」または「認識」を得ることができます。 画像認識などの単純な知覚行動の場合、人間はこの情報統合プロセスの存在すら認識していません。人間の目が物体を見るプロセスを分解すると、物理世界からの光子が人間の目の光受容細胞に入ると、大量の詳細なデータが生成されます。このデータはすべて、人間の脳のニューラル ネットワークに似た構造 (ニューラル ネットワークよりはるかに高度なもの) で処理される必要があります。これらの詳細なデータを統合して初めて、私たちは目の前にある物体をマクロレベルで認識できるようになります。人間の脳では、このプロセスは瞬時に行われ、高速かつ正確で、エネルギーをほとんど消費しません。物体を認識できるモデルを設計したい場合、人間の脳の処理メカニズムを完全に再現することが最善のアプローチかもしれません。しかし、これらのメカニズムは不明であり、少なくとも私たちの理解は非常に限られています。したがって、私たちは人間の脳のメカニズムを近似したり、参考にしたり、模倣したりすることしかできません。 最後に、今日説明した視覚化技術は、機械学習の解釈可能性技術のごく基本的な部分にすぎません。これは、既存のモデルを修正する方法や、モデルをより適切にトレーニングする方法についての参考値を提供する可能性がありますが、破壊的な学習メカニズムをゼロから発明するのに役立つ可能性は低いです。前回の記事「プログラマーから見たテクノロジーとアートのスペクトル」で説明したように、新しいモデルの設計や新しい学習メカニズムの発明は、依然としてインスピレーションを必要とする「アート」です。 |
<<: 人工知能はマーケティング業界に破壊的な影響を及ぼすだろう
>>: 5G時代、移動ロボットは知能でどのように勝利できるのでしょうか?
[[379564]]日本政府は国民が真実の愛を見つけるのを助けるために AI を活用しています。 (...
シンガポールは、都市国家内での違法行為を阻止するためにロボットを活用している。しかし、ロボット警官が...
GPT-4 の視覚機能がテスト用に完全にリリースされる前に、オープンソースのライバルが華々しくデビ...
[[429193]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
ドローンは最近ますます人気が高まっています。高解像度カメラ付きの機械を数百ドルで購入することもできま...
市場には優れた AI ソフトウェア ツールが数多く存在しますが、プロジェクトを実装する際には強力なチ...
画像分類は、コンピューター ビジョン研究において常に非常に基本的で重要なタスクです。過去 10 年間...
[51CTO.com からのオリジナル記事]活動の説明: Aiti Tribe は、コア開発者に詳...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
生成型人工知能の出現により、人間と人工知能の距離は徐々に縮まっています。これまで関連技術にあまり注意...
近年、民間ドローンの急速な普及は、空中撮影、レジャーや娯楽、農作物の保護、電力検査など、人々の生産と...
デジタル変革はヘルスケアにおける大きなトレンドと考えられており、インテリジェントな自動化もその一部と...
テスラと競争したロボットを覚えていますか? これは、チューリッヒにあるスイス連邦工科大学のスピンオフ...
[[319769]]今日、デジタルサイエンスは企業にとってますます魅力的になっています。しかし、デジ...