🐈

Act 12. 機械学習の概念

2024/11/02に公開

はじめに

Act 01. AIで外国為替を自動売買するまでの道のりをベースに学習を進めて行く。

自分で調べたことを記事にしているため、もしかしたら理解が誤っていたり足りていないこともあるかもしれない。
ということでまず初めに。。。

よし、今日もやっていこう!

ついに機械学習について学び始める。
記事を書いている途中にPCがフリーズしてしまったため最初から書き直し。。だるい。

こまめに下書き保存をすることを心掛けていざ学習開始!
ずっと学びたかったことがついに学べるのでテンション上げて行こう!

今回学ぶのは機械学習の概念について。
どうやら以下の3つの方法で学習を行うらしい。

  • 教師あり学習
  • 教師なし学習
  • 強化学習

以降でそれぞれについて解説していこうと思う。

教師あり学習

まずは教師あり学習から。
教師あり学習は、機械学習の一つのアプローチで、ラベル付きデータを使用してモデルを訓練する方法。具体的には、入力データとそれに対応する正しい出力(ラベル)がペアになったデータセットを用いて、モデルがパターンの学習を行うらしい。

問題(入力)と答え(出力)をペアで渡して学習させていくということね。ふむふむ。
例えばこんな感じで、画像と答えのペアを渡すことで猫と犬を識別できる。という認識。

データセット(入力と出力のペア)は今回5つで学習させて、最後の1つで答えを聞いたが、実際はもっと膨大な量の学習が必要になる。
猫も犬も色々な子がいるから仕方ないね。ちなみに自分は猫派。

まあ、こんな感じで入力と出力のペアを渡して学習させることが教師あり学習と理解した。
ちなみに教師あり学習は以下の分野で役立つらしい。

  • 画像分類: 写真から物体を認識するタスク。
  • 音声認識: 音声データから文字を生成するタスク。
  • スパムフィルタリング: メールがスパムかどうかを判断するタスク。
  • 予測分析: 売上や需要の予測。

ここで一つ気になった。
今回のような画像分類だが、AIは目がないのにどうやって画像を分類しているのか。
それについては画像識別の仕組みに記載したので、気になったら見てほしい。

教師なし学習

次に教師なし学習について。
教師なし学習は、機械学習の一つのアプローチで、ラベルなしのデータを使用してモデルを訓練する方法。
このアプローチでは、データ内の隠れたパターンや構造を発見することを目的としている。

教師なし学習では、学習モデルがあるらしい。

  • クラスタリング
  • 次元削減 など

クラスタリング

クラスタリングについては教師なし学習(クラスタリング) | ノートで伝える機械学習入門シリーズがもの凄く分かりやすかった。

恐らくだが以下のような流れだと思う。
まずは画像を数値データに変換。変換については画像識別の仕組みに記載しているようなイメージ

次にデータを行列に直してクラスタリングを行う。
最後にどのクラスターに属するか判別する。みたいなイメージだと思う。。

もっと複雑なことをやっていたり、そもそも認識が誤っているかもしれないが、いったんはこのイメージで進めて行こう!有識者の方、教えてください!!!!

FXとかだと、買い注文、売り注文、何もしないの3つのクラスターを作って、買い注文クラスターに相応しいチャート状況になったら買い注文を出す。みたいな使い方ができるのかなー?

次元削減

次元削減の方法の一つである主成分分析について記載しようと思う。
教師なし学習(主成分分析) | ノートで伝える機械学習入門シリーズが分かりやすかった。

大量のデータを低次元のデータに変換しようってことだというのは理解できた。
次元削減を行うとどんないいことがあるのか。

教えてChatGTPさん

機械学習において第一主成分を元に行われる分析は多岐にわたります。
以下に、いくつかの代表的な用途を挙げます。

挙げられた用途は以下の通り。

  1. データの可視化
  2. 特徴選択と次元削減
  3. 異常検知
  4. クラスタリング
  5. 機械学習モデルの前処理
  6. 特性の解釈

例えば、身長と体重の2次元のデータポイントがあったとする。(内容は適当)
このデータポイントを元にそれぞれ解説してみる。

1. データの可視化

第一主成分は、データの分散が最も大きく、最も情報を持っている方向を示す。
第一主成分を使うことで、データの構造やパターンを視覚化しやすくなる。
身長が高くなると体重も増えるよねってことが簡単にわかる。

2. 特徴選択と次元削減

大事な部分だけ抽出して第一主成分や第二主成分を見つけることで次元が削減できたよね。みたいなことだと思っている。

3. 異常検知

第一主成分を見つけることで、明らかにおかしいやつを検知できる。
工場とかだと壊れているパーツとかが検知できるのかなと。

4. クラスタリング

クラスタリングしやすくなるよね。
詳細は割愛

5. 機械学習モデルの前処理

高次元データから低次元データに変換したことで、扱うデータの量も減り機械学習の効率が良くなる。
そのためにもデータの前処理として主成分分析を行うことは有効らしい。

6. 特性の解釈

身長と体重の関係性、つまりこのデータプロットの特性が分かる。

教師なし学習はこんな感じかな?

強化学習

次に強化学習について。
強化学習とは | ノートで伝える機械学習入門シリーズを見てみた。

動画の内容がかなり分かりやすかった。自分の例では何の役にも立たないからぜひ動画を何回も見直してほしい。

動画を見ていて思ったのだが、強化学習は外国為替の自動売買にかなり有効そう。
そう思いChatGTPさんに有効か聞いてみたら大絶賛だった。以下は有効と考える理由。

  1. 環境のモデリング
    FX市場は動的で複雑な環境であるため、強化学習を使用することで、エージェントは市場の動き(価格変動)を観察し、状態を定義することが可能。この状態には、過去の価格データ、テクニカル指標、経済指標などが含まれる。

  2. 行動の選択
    強化学習では、エージェントが特定の状態に基づいて行動を選択する。FX取引における行動は、「買う」「売る」「何もしない」といった決定になる。エージェントは、過去の経験に基づいて最適な行動を学習し、利益を最大化することを目指す。

  3. 報酬の設計
    報酬はエージェントが学習する際の重要な要素。FXの場合、報酬は取引の利益や損失に基づいて定義される。例えば、取引が成功して利益が出た場合は正の報酬を与え、損失が出た場合は負の報酬を与えるなど。これにより、エージェントは成功した戦略を強化し、失敗した戦略を回避するようになる。

  4. 戦略の最適化
    強化学習を通じて、エージェントは異なる取引戦略を試行し、最も効果的な戦略を学習する。特に、深層強化学習を使うと、複雑な市場の状況やパターンを捉えやすくなる。

  5. リスク管理
    FX取引にはリスクが伴う。強化学習を用いることで、リスクを考慮した取引戦略を開発することが可能。たとえば、ポジションサイズを調整したり、ストップロスやテイクプロフィットのレベルを動的に設定することが可能。

  6. 適応性
    市場は常に変化しているため、強化学習モデルは新しいデータに基づいて戦略を継続的に更新することが可能。これにより、モデルは市場の変化に適応し、長期的に有効な戦略を維持できる。

  7. バックテストと評価
    強化学習によって学習した戦略は、過去のデータを使用してバックテストし、その性能を評価することができる。この過程で、戦略の有効性やリスク管理の観点からの改善が行える。

強化学習はしっかりと学ぶ必要がありそうだから、別の記事できちんとまとめないといけないかも。

補足

画像識別の仕組み

みんな大好きChatGTPさんに聞いてみた。

AIが画像を識別する仕組みは、主にコンピュータビジョンと呼ばれる分野に基づいています。AIは、人間の目のように直接「見る」ことはできませんが、画像データを数値として処理することができます。

なるほど、画像を数値として処理するのか。
例えばかなり適当だが以下のようなイメージだと思う。
※数値が1に近づくにつれ白色、0に近づくにつれ黒色になるとする。
 正確には色はRGBで表すため、(0, 0, 0)が黒みたいな感じになるかも

こんな感じで猫や犬の画像を1ピクセルずつ数値を割り当てていく。
そして、それらの数値を行列としてコンピューターに取り込む。

次にデータの中から特徴を抽出する。
そして膨大な数を学習させることで特徴をより正確にし、画像の識別を行う。

調べていてこんな感じかなーと理解した。

さいごに

難しいけど面白い!

どういう仕組みなのかなと気になる個所はあるけど、いったん進めて行こうと思う。

ではまた

Discussion