目に見える機械学習: ニューラルネットワークをゼロから理解する

目に見える機械学習: ニューラルネットワークをゼロから理解する

機械学習に関する古いジョークがあります。

機械学習は高校のセックスのようなものです。誰もがやっていると言いますが、実際にやっている人はいませんし、実際に何なのか誰も知りません。[1]

翻訳するとおそらく次のようになります:

機械学習は高校のセックスのようなものです。誰もがそれをやったと言うが、実際にやった人は誰もいないし、それが何なのか誰も本当に知らない。

[[324779]]

つまり、ある程度、機械学習にはわかりにくく難しい部分がたくさんあります。機械学習モデルやニューラルネットワークは通常、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% です。ここでは問題を複雑にしたくないので、通常の完全接続ニューラル ネットワークを使用して問題を解決します。私たちが使用するネットワーク構造は次のとおりです。

このニューラル ネットワークの入力と出力は次のように定義されます。

  • 入力: 一度に 1 枚の画像を入力します。画像内の各ピクセルのグレースケール値は 255 で割られ、[0,1] 間の正規化されたグレースケール値が得られ、それが入力層の各ニューロンに入力されます。つまり、入力層には 784 個のニューロンがあり、これは画像内の 28×28 = 784 ピクセルに相当します。
  • 出力: 出力層には 10 個のニューロンがあり、各ニューロンの出力は 0 から 9 までの数字に対応します。どのニューロンが最大の値を出力しても、予測結果は対応する数値であると想定できます。さらに、10 個の出力値をソフトマックス処理して、現在の入力画像が各数字になる確率を取得します。

このニューラル ネットワークをトレーニングすると、約 98% の正しい認識率を簡単に得ることができます。では、このより広いニューラル ネットワークに対しても、以前の方法を使用して視覚的なイメージを描くことはできるのでしょうか?

次元削減

前のセクションでは、単純なニューラル ネットワークには入力層と非表示層の両方に 2 つのニューロンしかなかったので、それらの画像を 2D 座標平面にプロットできました。 MNIST ニューラル ネットワークの場合、入力層の画像を描画すると、784 次元あることがわかります。

784 次元の特徴ベクトルをプロットするにはどうすればよいでしょうか。これには、高次元データの視覚化の問題が関係します。一般的に言えば、人間の脳は 3 次元までの空間しか理解できません。3 次元を超える空間については、抽象的な思考に頼るしかありません。

高次元空間を直感的に理解することがいかに難しいかを感じるために、簡単な例を想像してみましょう。

  • まず、平面(つまり、2 次元空間)で、互いに等距離にある 3 つの点を見つけ、それらを頂点として正三角形を形成できます。
  • 3 次元空間では、互いに等距離にある 4 つの点を見つけることができます。これらの点を頂点として正四面体を形成し、この正四面体の各面は正三角形になります。
  • さて、4 次元空間に移ります。理論的には、互いに等距離にある 5 つの点を見つけることができ、それらを頂点として、「正五面体」と呼ばれるものを形成できます。類推を続けると、このいわゆる「正五面体」の各「面」、つまり 5 つの点のうちの任意の 4 つの点で構成される「面」は、厳密に言えば正四面体であるため、「面」と呼ぶことはできません。ここで「正五面体」という誤解を招く名前を使用すると、3D 空間では「正多面体」のように聞こえるため、これも非常に誤解を招く可能性があることにも注意してください。しかし、数学の歴史について少しでも知っているなら、2,000 年以上前にユークリッドが『原論』の中で、三次元空間には正五面体は存在しない (実際には三次元空間には正多面体は 5 つしかない) と提唱したことを知っているはずです。

さて、4 次元空間についての最後の段落をまだ理解できるのであれば、それはあなたがそれを非常に注意深く読み、読みながら考えていたということを意味します ^-^ しかし、いずれにせよ、4 次元空間の状況は十分に厄介です (論理的ではありますが想像できません)。ましてや、784 次元空間の幾何学的構造を想像することはできません!

そのため、高次元空間のデータを3次元または2次元空間に縮小し、それを視覚的に描画して、一定の「直感的な理解」を実現する次元縮小技術が必要になります。

では次元削減とはどのような操作なのでしょうか? よく考えてみると、現実世界では次元削減の場面に何度も遭遇しています。たとえば、次の図をご覧ください。

[[324787]]

これは100年以上前の有名な絵画で、「グランド・ジャット島の日曜日の午後」と呼ばれています。この絵では、海岸の遠くに強い奥行き感を感じることができます。しかし、どんな絵画も二次元平面上に描かれます。したがって、画家は 3 次元のシーンを 2 次元に投影する必要があり、これは一種の「次元削減」プロセスです。同様に、私たちが普段カメラで撮る写真も、3 次元空間を 2 次元平面に「次元を縮小」します。この種の次元削減プロセスは広く普及しており、線形変換の一種である「射影変換」と呼ぶことができます。

別の例を見てみましょう。

写真の右側には世界の平面地図があります。本来、地球の表面は3次元空間上の球体ですが、上の世界地図は球体全体を2次元平面上に描いています。これを実現するために、地図製作者は当然球体を平らにする必要があり、一部の領域を引き伸ばしたり歪ませたりする必要があります。この描画プロセスはマッピングと考えることができます。つまり、地球の表面上の点が世界の平面地図上の点にマッピングされるのです。しかし、すべてのポイントのマッピングは同じ線形関係を満たさないため、これは非線形変換です。

上記の例が絵画、写真、世界地図のいずれであっても、3 次元を 2 次元に縮小します。しかし、機械学習では、高次元から 3 次元または 2 次元に次元を削減する必要があることがよくあります。線形次元削減法である PCA (主成分分析)、非線形次元削減法である MDS (多次元スケーリング) と t-SNE (t 分布確率的近傍埋め込み) など、さまざまな次元削減法が発明されてきました。

k近傍グラフと機械モデルに基づく次元削減可視化手法

上で述べたさまざまな次元削減方法には、それぞれ異なるアプローチと焦点があります。説明しようとするとスペースがかなり必要になるため、この記事では詳細には触れません。次の目標は、前のセクションで紹介したMNISTニューラルネットワークの直感的な視覚化を提供することであるため、ここではより直接的な(そして理解しやすい)アプローチ、つまりk-NNG(k-近傍グラフ)と力指向モデル[3][4]に基づく次元削減視覚化手法を採用します。

この方法のプロセスは次のように説明できます。

  1. 高次元空間内のノードについては、各ノード間の距離が計算され、各ノードに最も近い k 個のノードが検索され、接続されてエッジが確立されます。これにより、ノードとエッジで構成されるグラフ データ構造が作成されます。この新しく作成されたグラフには、エッジによって直接接続されているノードは元の高次元空間内で比較的近い位置にあり、エッジによって直接接続されていないノードは元の高次元空間内で比較的離れているという特性があります。このグラフは「k 最近傍グラフ」または k-NNG (k 最近傍グラフ) と呼ばれます。もう一つの疑問があります。高次元空間内の 2 つのノード間の距離をどのように計算するかということです。実際にはこれを計算する方法は多数ありますが、より一般的なのは「ユークリッド距離」と「ミンコフスキー距離」です。
  2. 前の手順で取得した k 最近傍グラフを 2 次元平面に描画します。これは、回路基板のコンポーネント レイアウトに多少似た、一般的な図面レイアウトの問題になります。描画した画像を鮮明で観察しやすいものにするためには、描画プロセスが可能な限り特定の条件を満たす必要があります。たとえば、エッジ線の交差は可能な限り小さく、エッジで接続されたノードは可能な限り近く、ノードは近づきすぎて(密集して)はならず、座標平面全体に可能な限り均等に分散されている必要があります。この要件を満たすために、Fruchterman と Reingold によって発明された Force-Directed Graph Drawing アルゴリズムを採用しました。以下に示すように、物理世界の機械的原理をシミュレートします。

  • 左上隅の図を想像してください。ただし、エッジをスプリングに、ノードを帯電ボールに置き換えます。
  • スプリングは、隣接するノード(つまり、エッジで接続されたノード)を、遠すぎず近すぎない自然な長さ(元の高次元空間の距離に対応)に固定する傾向があります。
  • すべての「帯電ボール」は互いに反発し合い、隣接していないノードを互いに離して、すべてのノードが可能な限り画面全体に広がるように促します。
  • 手を離して、各ノードをバネと反発力の作用下で自由に動かし、最終的に全体のエネルギーが最小の状態に到達します。この時点で、左下隅に適切なノード レイアウトが表示されます。

この方法では、高次元から低次元に縮小するときに、元の高次元空間のどの幾何学的特性が維持されるかに注目する必要があります。 前の描画プロセスの説明から、元の高次元空間で比較的近いノードは、バネの張力の作用により、最終的な2次元画像でも比較的近くなることが簡単にわかります。これを理解することによってのみ、低次元の画像を見て高次元の構造を理解することができます。

これで、MNIST ニューラル ネットワークを視覚化する準備が整いました。

MNISTの可視化

上図は、MINST ニューラル ネットワーク (784 次元) の入力層データを視覚化したものです。図中の各ノードは 784 次元のベクトルで表される画像を表します。図中の各色は 0 から 9 までの数字の 1 つを表します。つまり、合計 10 個のカテゴリのノードがあることになります。次のことがわかります。

  • オリジナルの MNIST データセットでは、自己進化に何らかの構造が見られます。同じ数字を表すノードは、元の 784 次元空間では比較的近いため、自然にクラスターに集まります。たとえば、左側の青いノード グループは数字 0 を表し、右下隅の藍色のノード グループは数字 1 を表し、左下隅の紫色のノード グループは数字 6 を表します。
  • 右中央にはさまざまな種類のノードが混在しています。たとえば、数字 9 を表す赤いノード、数字 7 を表す濃い茶色のノード、数字 4 を表す黄緑色のノードが互いに絡み合っています。つまり、それらを互いに区別するのは容易ではないということです。

上の図は、MINST ニューラル ネットワーク (128 次元) の中間隠し層の出力データを視覚化したものです。グラフ内の各ノードは依然として画像(つまり、隠れ層変換後の元の画像データに対応するデータ)に対応しており、128 次元のベクトルで表されます。グラフ内の各色は依然として 0 から 9 までの数字の 1 つを表し、合計で 10 個のカテゴリが存在します。次のことがわかります。

  • 上記の元の MINST 入力データと比較すると、ノードの混沌が少なくなっています (エントロピーが削減されているとも言えます)。これには、前の画像で混ざっていた数字 7、4、9 も含まれます。これで、それらはすべてクラスターにまとめられました。左側に突き出ている濃い茶色のノード クラスターは数字 7、左上隅の黄緑色のノード クラスターは数字 4、赤色のノード クラスターは数字 9 です。つまり、それらを互いに分離するのがより簡単になります。

上図はMINSTニューラルネットワークの最終出力層出力データ(ソフトマックス処理後)の可視化画像(10次元)です。グラフ内の各ノードは依然として画像(つまり、ニューラル ネットワーク全体によって変換された後の元の画像データに対応するデータ)に対応しており、これは 10 次元のベクトルになります。グラフ内の各色は依然として 0 から 9 までの数字の 1 つを表し、合計で 10 個のカテゴリが存在します。次のことがわかります。

  • 各カテゴリの数字がまとめられるため、ノードの乱雑さが大幅に軽減されます。この画像のノード数は前の 2 つの画像とまったく同じですが、散布空間がはるかに小さいことを考慮すると、分類によるクラスタリングの程度が高いレベルに達していることを意味します。実際、この時点では、最後の 10 次元ベクトルに対して単純な argmax 判定を行うだけで、非常に高い精度で特定の数値を識別できます。これは、最終的な出力が高度な「分離可能性」を持つことを意味します。

まとめ

この記事では、ニューラル ネットワークの視覚化研究を通じて、元の特徴入力から始めて、ニューラル ネットワークの各層の変換処理が抽象化の点で問題の目標に近づいていることを発見しました。 MNIST 手書き数字認識問題を例に挙げてみましょう。目標は、画像を 0 から 9 までの 10 個のカテゴリのいずれかに分類するという、多重分類問題です。初期入力は元の画像ピクセル データです。各ネットワーク レイヤーの変換後、データは以前よりも「分離可能」になり、分類ターゲットに近づきます。

これは情報を統合する典型的なプロセスです。現実世界の多くの状況と同様に、複雑な詳細を効果的に統合することによってのみ、真の「知覚」または「認識」を得ることができます。

画像認識などの単純な知覚行動の場合、人間はこの情報統合プロセスの存在すら認識していません。人間の目が物体を見るプロセスを分解すると、物理世界からの光子が人間の目の光受容細胞に入ると、大量の詳細なデータが生成されます。このデータはすべて、人間の脳のニューラル ネットワークに似た構造 (ニューラル ネットワークよりはるかに高度なもの) で処理される必要があります。これらの詳細なデータを統合して初めて、私たちは目の前にある物体をマクロレベルで認識できるようになります。人間の脳では、このプロセスは瞬時に行われ、高速かつ正確で、エネルギーをほとんど消費しません。物体を認識できるモデルを設計したい場合、人間の脳の処理メカニズムを完全に再現することが最善のアプローチかもしれません。しかし、これらのメカニズムは不明であり、少なくとも私たちの理解は非常に限られています。したがって、私たちは人間の脳のメカニズムを近似したり、参考にしたり、模倣したりすることしかできません。

最後に、今日説明した視覚化技術は、機械学習の解釈可能性技術のごく基本的な部分にすぎません。これは、既存のモデルを修正する方法や、モデルをより適切にトレーニングする方法についての参考値を提供する可能性がありますが、破壊的な学習メカニズムをゼロから発明するのに役立つ可能性は低いです。前回の記事「プログラマーから見たテクノロジーとアートのスペクトル」で説明したように、新しいモデルの設計や新しい学習メカニズムの発明は、依然としてインスピレーションを必要とする「アート」です。

<<:  人工知能はマーケティング業界に破壊的な影響を及ぼすだろう

>>:  5G時代、移動ロボットは知能でどのように勝利できるのでしょうか?

推薦する

日本の出生率が過去最低を記録、政府は国民が真実の愛を見つけるのを助けるためにAIの助けを求める

[[379564]]日本政府は国民が真実の愛を見つけるのを助けるために AI を活用しています。 (...

シンガポールは路上での悪質な行為を検知するためにロボットを使っている

シンガポールは、都市国家内での違法行為を阻止するためにロボットを活用している。しかし、ロボット警官が...

GPT-4Vに挑戦する浙江大学の卒業生が、マルチモーダル大規模モデルのオープンソース版をリリースし、GitHubで6,000以上のスターを獲得しました。

GPT-4 の視覚機能がテスト用に完全にリリースされる前に、オープンソースのライバルが華々しくデビ...

中国語と英語で最大のAIモデルの世界記録が樹立され、大規模モデル競争の新たなステージが到来

[[429193]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

ドローンは何に使えるのでしょうか?これらの使い方は本当に素晴らしいです!

ドローンは最近ますます人気が高まっています。高解像度カメラ付きの機械を数百ドルで購入することもできま...

トップレベルの人工知能チームを構築するにはどうすればよいでしょうか?

市場には優れた AI ソフトウェア ツールが数多く存在しますが、プロジェクトを実装する際には強力なチ...

MLP は視覚研究に潜在的な驚きをもたらすでしょうか?最近のMLP画像分類作業の概要と分析

画像分類は、コンピューター ビジョン研究において常に非常に基本的で重要なタスクです。過去 10 年間...

Aiti Tribe Clinic 第 6 回: 機械学習は緊急事態をどのように判断するのか?

[51CTO.com からのオリジナル記事]活動の説明: Aiti Tribe は、コア開発者に詳...

3Dデモを使用してさまざまな最適化アルゴリズムを理解します。これはC++プログラマーにとって朗報です。

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

今後のAIの5大発展トレンドとは?2024年は「意味のある人工知能時代」の到来を告げる

生成型人工知能の出現により、人間と人工知能の距離は徐々に縮まっています。これまで関連技術にあまり注意...

ドローン盗撮の防止は難しく、3つの面での取り組みが必須

近年、民間ドローンの急速な普及は、空中撮影、レジャーや娯楽、農作物の保護、電力検査など、人々の生産と...

RPAと医療におけるインテリジェントオートメーションの台頭

デジタル変革はヘルスケアにおける大きなトレンドと考えられており、インテリジェントな自動化もその一部と...

四足歩行ロボットが二足歩行で階段を降りることを学びます。脚型システムより83%効率が高い

テスラと競争したロボットを覚えていますか? これは、チューリッヒにあるスイス連邦工科大学のスピンオフ...

アルゴリズムを超えて: 人工知能と機械学習が組織に与える影響

[[319769]]今日、デジタルサイエンスは企業にとってますます魅力的になっています。しかし、デジ...