Python でプログラミングの学習をしています。
Python というと「機械学習」のためのモジュールが豊富です。
ということでせっかく Python でプログラミングを学習しているなら「機械学習」も少しずつ学習しようと思っています。
インフラ系エンジニアでも機械学習の知識が何かしら役に立つかもしれません。(今は特に思いつきませんが)
現在「機械学習」を学習している書籍です。
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
内容は初心者用に非常に分かりやすく記述されています。
Python のバージョンも Python3 に対応しているのも評価が高いです。
「機械学習」と「人工知能(AI)」の関係
機械学習とは一言で言うと「膨大なデータの中から特定のパターンを見つけ出すこと」です。
人工知能は「人間と同様の知能をコンピュータ上で実現したもの」です。
昔は「人工知能」と言うと、何やら夢物語のような、実現不可能な技術に聞こえましたが、今では「機械学習(ディープラーニング)」によって人工知能の可能性が飛躍的に高まりました。
その結果
- 文字認識
- 音声認識
- 囲碁・将棋
- 医療診断
- 自動運転
など新しい可能性が広がりました。
ちなみに「機械学習」を使って FX をしている人もいます。
ネットで調べると結構な方が Python で機械学習を利用して FX の自動売買に挑戦しています。
中には儲けている方もいるかもしれません(笑)
「人工知能」と「機械学習」の関係ですが、実現不可能と言われていた「人工知能」ですが、その「人工知能」を実現させる技術が「機械学習(ディープラーニング)」と言えるでしょう。
機械学習の方法
具体的な機械学習の方法ですが、初めにある程度の量のデータを集めて解析を行います。
少量のデータではなく大量のデータの方がいいです。
そして、データの中に一定の「規則性」や「ルール」がないかを調べます。
もし一定の「規則性」や「ルール」があった場合は、それを基に将来を予測します。
例えば FX で言えば「ボリンジャーバンド」は標準偏差に基づいて帯を作り、価格変動の95%がこの帯の中に含まれるため、買われすぎ・売られ過ぎの指標になるなどと言われます。
これも過去のデータから規則性を見つけ出して「買われすぎ」「売られすぎ」の位置を見つけ出しています。
具体的な「規則性」や「ルール」の見つけ方
具体的にどのように「規則性」や「ルール」を見つけているのかと言うと、データを解析して「ベクトル」を計算して、ベクトルから判断しています。
ベクトルとは「ある空間の中の大きさと方向を持った量」です。
機械学習で何ができるのか?機械学習の可能性
これが一番重要です。
「機械学習で何ができるのか?」が分からないとプログラミングも飽きてしまいます。
何ができるのか?何が出来そうか?まとめました。
クラス分類(Classification)
データをクラス分けできます。
例えば大量のメールを受信して学習させることにより、業務用のメールなのか迷惑メールなのかが判別できるようになります。
また、大量の画像を学習させることにより、数字を判別できるようになったり、文字を判別できるようになります。
たとえば、スパム防止に画像の文字を入力させるWebサイトがありますが、機械学習をすることにより自動的に文字を判別して入力ができます。
自動で入力させないために画像の文字を入力させているのですが・・(笑)
グループ分け・クラスタリング(Clustering)
類似性を見つけてグループ分けをすることができます。
メンバーの好みを見つけてグループ分けをしたり、特徴を見つけてグループ分けをすることができます。
推薦(Recommendation)
Amazonでおなじみですが、推薦の商品を出てきます。
「グループ分け」か「推薦」か難しいところですが、「この商品を買った人はこの商品も買っています。」といった商品の推薦ができます。
回帰(Regression)
過去のデータを基に将来を予測します。
株価・FX など過去の値動きより将来は上がるか下がるかを予測します。
次元削除(Dimensionality Reduction)
説明が難しいですが、「次元削除」を利用することでデータの特徴を維持しつつデータの量を減らすことができます。
まとめ
機械学習を利用することでいろいろな可能性が広がると思います。
まだまだ機械学習入門者ですが、時間を掛けて諦めずにじっくりと Python を使って学習をし続けようと思います。
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
コメント