AIの分野でテクノロジーの進化が続いているということが話題になる場合、十中八九畳み込みニューラルネットワークが関係しているんですよね。
畳み込みニューラルネットワークはCNN(Convolutional Neural Network)またはConvNetとも呼ばれ、ディープニューラルネットワークの分野の主力となっています。
AIの畳み込みニューラルネットワークは、画像を複数のカテゴリに分類するよう学習していて、その分類能力はすでに人間を上回るケースも出てきています。
大言壮語のうたい文句を実現している方法が本当にあるとすれば、それは畳み込みニューラルネットワークだということはほぼ間違いないんですね。
FXにおけるチャート分析でも、この畳み込みニューラルネットワークがすでに主要な分析方法のひとつになってきています。
AIにおける畳み込みニューラルネットワークの非常に大きな長所として、理解しやすいことが挙げられます。
少なくとも幾つかの基本的な部分にブレークダウンして学べば、それを実感できるんですよね(^^)
ぜひ今日もクリックをおねがいします!ブログランキングに参加しています。Ctrlを押しながらクリックすると新しいページで開けます👇(^^)
目次
畳み込みニューラルネットワークの判断を×と○で考える
今回の畳み込みニューラルネットワークの説明では、単純化した1つの例題だけを取り上げてご紹介していこうと思います。
例題は、対象の画像が×か○かを判断する、というものです。
この例には、畳み込みニューラルネットワークの原則を示すのに十分な内容が含まれていますが、それでいて不必要な詳細にはまり込む危険もないほど単純化されています。
けっこう良い例なので、とりあげてFXまで一気通貫で説明してみようと思うんです。
AIの畳み込みニューラルネットワークが実行するジョブは、1つだけです。
画像を畳み込みニューラルネットワークに渡すと、畳み込みニューラルネットワークはそれが×か○かを判定します。
なおAIの畳み込みニューラルネットワークは、渡される画像が常に×か○のどちらかであると想定しています。
この問題を解決するための初歩的なアプローチは、×と○の画像をあらかじめ保存し、渡された画像と保存した画像を比較して、×と○のどちらにより近いかを判定する、というものです。
このタスクでは、コンピュータは全く融通が利かないという点、わかりますでしょうか?
コンピュータは、画像をピクセルの2次元配列(巨大なチェッカー盤を思い浮かべてください)として認識しており、ピクセルが置かれる場所にはそれぞれピクセル値が割り振られます。
この例題では、1のピクセル値は白、-1は黒を表します。
2つの画像を比較する際、1つでも一致しないピクセル値があれば、少なくともコンピュータは、渡された画像は元の画像と同一ではないと判定します。
これまでは、ここまでがテクノロジーの限界だったわけですよ。
理想としては、渡された画像の配置がずれていたり、画像が縮小していたり、回転していたり、変形していたりしても、×か○かの全体的な形状を見て判定するようにしたいところだったんですね。
手書きだったら、本当にいろいろな個性のある「○」が存在するので。
そこで畳み込みニューラルネットワークが日の目を見るにいたった、というわけです(^^)
上昇トレンドを見抜くAI
畳み込みニューラルネットワークは、畳み込み層、プーリング層、全結合層という3つのレイヤーによってできあがっています。
正確に書くと、これにアクティベーション層という、畳み込みによって生成されたデータを「活性化関数」と呼ばれる関数によって特徴づける層があるんですが、ここではややこしくなるので省略します。
畳み込みニューラルネットワークでは、画像をピースごとに比較するんですね。
ここで畳み込みニューラルネットワークが検索するピースは、特徴と呼ばれます。
2つの画像を比較して、だいたい同じ位置にある特徴がほぼ一致する箇所を検出することで、AIの畳み込みニューラルネットワークは、画像全体のマッチングを試みる場合よりも、類似性についてはるかに正確に判定できます。
特徴とは、ごく小さい画像、つまり要素数の少ない2次元配列のようなものらしいんですね。
特徴は、画像の共通性のある要素と一致します。
×の画像の場合、特徴は対角線と交差で構成されていて、この特徴が×の重要な特質を全て捉えています。
これらの特徴はおそらくどの×の画像でも、斜めの線や中心の交点において一致するんですよ。
FXのトレンド相場にこれをあてはめてみれば、与えられたチャートが、上昇の特徴を多く持っていたのなら、この時点でAIは上昇の特徴を意図せずたくさん読み込んでいくわけです。
和室じゃないです!AIの畳み込み層とは?
順を追って書いていきます。
なるべくFXのイメージがしやすいように書きますので、この記事を読んでくれているみなさんも、なんとか文章の意図をくみとる努力をしてみてください。
ちょっと専門的な内容ですが、AIを自身のトレードの補助にするためにも、ということですよね。
畳み込みニューラルネットワークへ画像を
今回の話は、畳み込みニューラルネットワークに新しい画像が渡された瞬間からはじまります。
その画像のどこに先述の特徴が含まれているのか、畳み込みニューラルネットワークには見当が付かないので、あらゆる位置で特徴の比較と一致点の検出を試みます。
画像全体にわたって、特徴の一致件数を計算することによって、フィルタをかけるんですね。
この時に実行する演算が「畳み込み」で、畳み込みニューラルネットワークの名称はここから取られているんですよ。
畳み込みで行われる計算自体は、恐らく小学生でも苦にはならないものです。
ちょっと複雑なのは、全体の構造です。
画像のパッチに対する特徴の一致を計算するには、単純に特徴の各ピクセルを、画像内の対応するピクセル値で掛ければいいだけなんですね。
そして答えを合計し、特徴のピクセルの総数で割ります。
両方のピクセルが白(値が1)なら1×1=1、両方が黒なら(-1)×(-1)=1となり、いずれにしてもピクセルが一致する場合の計算結果は全て1で、同様に一致しない場合は全て-1です。
もし特徴の全てのピクセルが一致している場合、それらを加算してピクセルの総数で割れば答えは1となります。
逆に特徴のピクセルが全く一致していない場合、答えは-1となります。
FXにピクセルの話をあてこんでみる
このへんの話は、数理的な話でなかなかチャートのイメージがしにくいかと思います。
が、考えてみるとわりと簡単な話です。
上昇基調のチャートを読み込むのなら、特徴のほうのピクセルも画像のほうのピクセルも、右肩上がりの絵になっているはずです。
こういう中ではじき出す答えは、必然的に左下から右上に向けて1が並ぶ絵になっていくということですね。
ここまで、大丈夫でしょうか?
さて、畳み込みを完了するためにこのプロセスを繰り返し、全ての画像パッチで特徴を並べていきます。
それぞれの畳み込みから答えが得られたら、各パッチの画像内の位置に基づいて、新たな2次元配列を作ることができるんですね。
この一致マップは、元の画像のフィルタ処理版でもあり、特徴が画像内のどこにあるかを視覚化するものです。
1に近い値は一致の度合いが強く、-1に近い値は特徴の反転(ネガ)に対して強い一致を示しています。
一方でゼロに近い値は、どちらにも一致していないことを示します。
AIの畳み込みニューラルネットワークは計算の鬼!
次のステップは、他の各特徴に関して、畳み込み処理を完全な形で繰り返すことです。
その結果、それぞれのフィルタによって処理された画像のセットができます。
この畳み込みの全体的な工程を、単一の処理ステップとして考えると理解が進むと思います。
畳み込みニューラルネットワークではこれを畳み込み層と呼んでおり、このAIの畳み込み層は他の層がじきに追加されることを示唆しています。
畳み込みニューラルネットワークが計算の鬼として名声を高めたのは、ある意味当然と言えますよね。
メモ帳の裏にでも書いてその概略を説明してみると、多くの加算や乗算、除算が繰り返されることが分かります。
数学的に言うと、それらの計算は画像内のピクセルの数、各特徴のピクセルの数、そして特徴の数に比例して増加していくということらしいんですね。
こういう話になると、根が文系のぼくは「らしい」と書くしかないんですが、そこは勘弁してください(^^;)
こうした多くの要因によって、AIは汗を流すことなくこの問題を何百万倍も拡大することができるんです。
マイクロチップメーカーが畳み込みニューラルネットワークの要求に追いつくために専用チップを開発中だという話も、それほど驚くには当たりません。
AI産業が成り立つには、さまざまな条件が必要になってきます。
こういう話はぼくの真骨頂なので書いておきますが、こういう「こまごまとした高品質なモノ」をつくることに関しては、メイドインジャパン製品の右に出るモノは全世界的に見てもそうはありません。
長年務めていたサザエさんのスポンサーを辞めた某メーカーなど、現在の日本のメーカーって、ちょっと元気がない会社が多いです。
こういう現状の中で、AI産業に光明を見出している会社が今、水面下でかなり増えてきているんですね。
大学などでの専門的な研究に、確かな技術力という地力がマッチしている点、日本のAI産業の未来は明るいと言われているんです。
国内製造業も、じつは人工知能産業の発達に貢献している、ということですね。
ものづくり大国、日本の看板を背負って。
AIの畳み込みニューラルネットワークにおけるプーリング層
さて、次の層です。
畳み込みニューラルネットワークが使う別の強力なツールが、プーリングです。
プーリングとは、大きな画像を、重要な情報は残しつつ縮小する方法で、画像内を小さなウィンドウに区切り、区切ったそれぞれのウィンドウから最大値を取るというものです。
これを、マックスプーリングと言います。
その仕組みはわりとわかりやすいと思います。
実際にはウィンドウの一辺が2ないし3ピクセル、幅が2ピクセルくらいでうまく機能します。
プーリング後、画像のピクセル数は元の4分の1程度になります。
それぞれのウィンドウで最大値を取っているため、ウィンドウ内ではそれぞれの特徴の適合度を維持しています。
ここではウィンドウ内における特徴の厳密な位置ではなく、ウィンドウの中のどこかに特徴があるということの方が重要です。
その結果、畳み込みニューラルネットワークは特徴の正確な位置を気にすることなく、画像内で特徴の場所を探すことができます。
これは、極度に融通のきかないコンピュータの問題を解決する一助になっています。
プーリングをFXに当て込む
プーリング層とは、画像や画像のコレクションにプーリングを行う操作のことです。
結果として出力される画像の枚数は同じですが、それぞれのピクセル数は減少します。
これは計算の負荷を管理するのにとても便利で、8メガピクセルの画像が2メガピクセルになれば、下流では処理がはるかに楽になります。
この話のFXバージョンが、けっこうコアな話になってきます。
このAIのプーリング層って、いわば畳み込み層で生成された特徴マップの要約版なわけですよね?
単なる上昇基調のチャートに多く含まれているかたちを、プーリング層では抜きとっていくわけです。
どうでしょう?
なんとなく想像できますでしょうか?
このプーリング層で抜き出されるチャート形状こそ、トレーダーが躍起になって見つけようとする、ゴールデンクロスであり、一目均衡表の雲抜けであり、レジスタンスラインのブレイクなわけです。
ディープラーニング
ここまでの話で勘の鋭い人は気づいたと思いますが、各層(2次元配列)への入力は出力(2次元配列)と非常に類似しているため、レゴのように積み重ねることができます。
原画像がフィルタ処理され、整流化され、プールされて、特徴がフィルタリングされた縮小画像のセットができあがりますが、このセットには繰り返しのフィルタ処理と縮小が可能です。
繰り返すごとに特徴はより大きく複雑になり、画像はよりコンパクトになります。
つまり下位層ではエッジやハイライトなどといった画像の単純な面が表現され、上位層では形やパターンといったより複雑な画像の面が表現されるんですね。
これらは容易に識別できます。
例えば人間の顔について訓練がされた畳み込みニューラルネットワークの場合、最上位の層は明らかに顔に似たパターンを表します。
この繰り返しが、ディープラーニングと呼ばれている過程、ということです。
いよいよ全結合層へ
AIの畳み込みニューラルネットワークの最終段階は、全結合層です。
全結合層が、フィルタ処理された高次の画像をゴールの投票に変換するんですね。
今回の場合で言うと、ゴールは×か○の2つのカテゴリーになります。
FXのトレンド相場で例えれば、上昇か下落ですね。
選挙に勝った答えがカテゴリーを宣言
全結合層は従来のニューラルネットワークの最も基本的な要素であり、入力を2次元配列として扱う代わりに、単一のリストとして全てを同等に扱います。
全ての値は現在の画像が×か○かについて、それぞれに票を得ますが、このプロセスは完全に民主的というわけではありません。
一部の値は画像が×だった場合にそれを識別する能力が他よりも優れており、一方で○の場合の画像を識別するのがめっぽう得意な値もあるからです。
これらの値は他よりもたくさんの票を得ます。
そして投票の結果は、それぞれの値およびカテゴリ間において重みおよび連結強度で表されます。
新しい画像が畳み込みニューラルネットワークに示されたら、その画像は畳み込み層、プーリング層を通過して最終的に全結合層に達するということです。
選挙が行われ、票数の多い答えが勝利して入力のカテゴリーを宣言するという流れです。
常に最新の相場傾向をキャッチできるAI
全結合層も、出力(投票のリスト)と入力(値のリスト)は全体的に類似しているため、その他の層と同じように積み重ねることができます。
実際に複数の全結合層が一緒に積み重ねられることは少なくありません。
その際は、それぞれの中間層は実態のない「隠しカテゴリ」に投票します。
その結果として、層が追加されるごとにネットワークはさらに洗練された特徴の組み合わせを学び、より良い選択ができるようになる、ということです。
これをFXにあてはめると、AIはとても心強い分析をしてくれる存在になる、ということがわかりますでしょうか?
こうして学習をつづける畳み込みニューラルネットワークを、最近吸収した特徴をより重視するようにつくりこめば、より最近のトレンドを高く評価して相場により順応した判断をするAIができあがりますよね。
このことが、感情的な裁量トレーダーの弱点を、補ってくれるんですね。
誤差を伝える!バックプロパゲーション
良い感じで説明を進めていると思いますが、まだ大きな穴があります。
それは、特徴はどのようにして定義されるのかと、AIの全結合層における重みをどのように設定するか、という問題です。
もし、こういったもの全てを手動で選択しなければならなかったとしたら、畳み込みニューラルネットワークは恐らく今のようには多くの人の支持を得られていなかったと言われているんですね。
この作業を引き受けてくれるのは、バックプロパゲーションと呼ばれている機械学習のマジックなんです。
バックプロパゲーションを利用するためには、既に答えが分かっている画像のコレクションが必要です。
つまり、忍耐強く、数千もの画像を次々と見ていき、×か〇かのラベルを付けたものです。
チャートで考えてみれば、これはさまざまな過去のチャートパターンを集めて、AIに見させるということですよね。
こうしてラベルを付けた画像を、訓練していない畳み込みニューラルネットワークに使います。
「訓練していない」とは、個々の特徴の各ピクセルの状態や全結合層におけるあらゆる重みがランダムな値に設定されているという意味です。
そういうところへ、畳み込みニューラルネットワークに次から次へと画像の入力を始めるんです。
畳み込みニューラルネットワークが各画像を処理すると、投票になりますよね?
投票の中の誤り、つまり誤差の量によって、特徴と重みの適切さがわかります。
特徴と重みは、誤差を減らすよう調整できます。
それぞれの値は上下に少しずつ調整され、新しい誤差が都度計算されます。
こうして、誤差が少ない方の調整が保持されるんです。
全ての畳み込み層の特徴のピクセルと全結合層の重みにこの作業をかけた後、新しい重みによって、画像判定効果がわずかに改善された回答が得られます。
ラベル付き画像セットの中の画像を使って、この作業が次々と繰り返されます。
1枚の画像にのみ起こるねじれはすぐに忘れられますが、多くの画像に起こるパターンは、特徴と接続の重みに埋め込まれるんですね。
ラベルの付いている画像が多いほど、セットに対する値が安定し、幅広いケースに適用することが可能になります。
どうでしょう?
なんとなくでも、イメージできます?
現在は、バックプロパゲーションもまた、計算の負荷が高いステップで、専門的なコンピュータハードウェアを利用したいと考えられる動機の1つになっているんですね。
ハイパーパラメータについて
ここまで読んでいただいて、どんな感想をお持ちでしょうか?
残念ながら、畳み込みニューラルネットワークの全ての面が、それほどすんなり学べるわけではありません。
畳み込みニューラルネットワークの設計者が行う必要のある意思決定は、現段階ではまだたくさんあるそうです。
- 各畳み込み層の特徴の数は? 各特徴におけるピクセルの数は?
- 各プーリング層のウィンドウのサイズは? ストライドは?
- 追加された各全結合層の隠しニューロンの数は?
例えばこういう課題ですよね。
これらに加え、構造に関して、よりハイレベルな意思決定をしなければなりません。
それぞれ何層にするかと、どのような順序にするかです。
ディープニューラルネットワークには1000を超える層を持たせることが可能なので、多くの可能性が開かれています。
多くの順列組み合わせがありますが、可能なCNNコンフィギュレーションのうちのごく一部しかテストは行われていないんですね。
畳み込みニューラルネットワークの設計は、コミュニティの知識の蓄積からもたらされることが多く、時にはパフォーマンスが驚くほど向上するような逸脱もあるんですね。
畳み込みニューラルネットワークをFXへ生かす
今回例として使用した×と〇のサンプルは画像ですが、畳み込みニューラルネットワークは画像以外のデータ型も分類することができます。
その手法とは、もともとのデータ型が何であっても、先述の画像と同じように処理できるものに変換することです。
畳み込みニューラルネットワークが得意な分野と苦手な分野
例えば、音声信号は、短時間のチャンクに分割することができます。
そして、各チャンクを低音域、中音域、高音域、あるいは、より細かい周波数帯に分割します。
それによって、列がタイムチャンクで、行が周波数帯である2次元配列として表現することができます。
このフェイク画像の中の近接する「ピクセル」同士には緊密な関係があります。
これに畳み込みニューラルネットワークがうまく機能するんです。
研究者は、非常にクリエイティブになり、テキストデータを自然言語処理に、化学データを薬品開発にさえ適応させてきました。
また、逆にこの形式に合わないデータの例は、表状のデータです。
表のデータでは、例えば顧客情報などでは、テーブルの行が顧客、列が名前、住所、Eメール、購入履歴、閲覧履歴などの顧報を表しています。
この場合、行や列のどの位置かはさほど重要ではありません。
列の配置を変更しても、行を並べ替えても、データの有用性を損ねることはありません。
画像の行や列を並べ替えた場合、多くは使い物にならなくなります。
大雑把に言えば、列を入れ替えてもデータの有用性が変わらない場合、AIの畳み込みニューラルネットワークは使えません。
畳み込みニューラルネットワークはバイナリーオプションに強い!
そして、チャート分析です。
今回の例では、〇か×かだったわけですが、これは為替相場の分析に応用できるんですね。
トレンド相場ならば、今、その瞬間からその後は上昇するのか?下落するのか?
レンジ相場ならば、今のレンジ幅は24時間以内に終わるのか終わらないのか?
こういう判断を、AIが畳み込みニューラルネットワークによってやってのけてくれるかもしれないわけです。
ちなみに、上記のレンジ相場の話は、バイナリーオプションの考え方に近いんですよね。
為替のバイナリーオプションでは、すでに試用をはじめている会社もあるそうですよ。
まとめ
さて、いかがでしたか?
こうした画像認識技術が、今、為替の分析にも積極的につかわれはじめてるんですね。
分析の仕方は、本当に多種多様なものがあるので、一概に、AIの畳み込みニューラルネットワークをつかった為替分析はこういうものだ、という点は書くことができません。
そもそも、本当に最先端の分野なので、そんなに情報がオープンになっていないというのが実際のところです。
ぼくは実務者なので、あくまでユーザー視点なんですよね。
ですが、FXへの畳み込みの実装方法が広く知れ渡るタイミングが、この先いつか訪れるとして、職業上少しは先を走って知り得ている話もあるなと思ったので、今回の記事を書いてみた次第です。
例えば、ビールの売上予測では、特定の気温を上回った場合に売上が大きくなることが知られています。
データ分析技術者が、売上と気温データからこのような関係性を発見し、売上に影響を与える特定の気温データ(特徴量)を抽出・評価することで、高精度な分析・予測を行っていたんですね。
AIは、こういう分析技術者が行っていた一連のプロセスを、自動化するんです。
こういう特徴量抽出技術も、画像認識の技術でAIなんですね。
画像認識の技術をFXに応用するのなら、まずAIが現在の為替レートを画像として認識し、その画像を過去の為替相場変動のビッグデータと照らし合わせて、似ている動きを探します。
そして、それを最適化技術によって、どのくらいの期間で、どのくらいの価格の上昇、下落が見込めるかを計算し、今後の為替相場の変動や為替レートを予測するわけです。
例えば、すでに、とある国内銀行のAIは、1時間以内の予測には、15分足を使用し、月曜日7時から土曜日12時まで15分おきに更新を行ってます。
そして1営業日以内の予測には、4時間足を使用し、月曜日9時から土曜日12時まで4時間おきに更新するんですね。
この時間足の話あたりは、Dakarの手法の真相を知っている方々は、「お!」と思っていただけるかなとおもいます。
実際、銀行で意識されている時間軸って、こんな基準だってことです。
Dakarの手法は、こういうAIに絡む最新事情まで考えてつくりこまれている手法なんですってこともあらためてご報告させていただき、この記事はこのへんで筆を置かせていただきますね(^^)
参考元:https://postd.cc/
Dakar
もしためになったならば、ぜひ今日もクリックをおねがいします!Ctrlを押しながらクリックすると新しいページで開けます👇(^^)