機械学習の基本入門

### 機械学習とは何か
技術の進歩に伴い、機械学習は現代技術の発展における重要な推進力となっています。推薦システムから自動運転車まで、機械学習の応用は至る所に存在します。本記事では、機械学習の基本概念と応用について入門的に解説します。
### それでは、機械学習とは何でしょうか？
機械学習（Machine Learning, ML）は、データを分析してモデルの性能を自動的に学習・改善する人工知能（AI）技術です。機械学習の核心は、コンピュータがデータから学ぶことであり、固定されたルールを記述することではありません。
例えば、従来の方法で猫と犬を識別する場合、以下のようなルールを与えていました：
- 猫は尖った耳を持ち、犬の耳は丸い。
- 猫は通常小さく、犬は通常大きい。
- 猫は「ニャー」と鳴き、犬は「ワンワン」と鳴く。
これらのルールを使って猫か犬かを識別していました。
しかし、機械学習では伝統的な方法と異なり、コンピュータに具体的なルールを教えるのではなく、多くの猫と犬の写真を見せます。写真を見るたびに、それが猫か犬かを教えます。一定期間学習した後、コンピュータは自分で規則性を見つけ出し、新しい写真を見たときにそれが猫か犬かを自分で判断できるようになります。
このように、明確なルール（猫は「ニャー」と鳴き、犬は「ワンワン」と鳴く）に基づいて動作するのではなく、大量のデータを分析し、その中からパターンを学び、新しい状況に遭遇した際に正しい判断を下すことができるようになります。

### 機械学習の種類

機械学習の種類は主に以下の四つに分けられます：
**監督式学習（Supervised Learning）**
監督式学習は、すべてのデータが「ラベル付け」されている学習方法です。各入力データに対応する出力ラベルがあり、これに基づいて機械が学習し、将来的な予測時に誤差を判断します。例えば、子供に犬の識別を教えるために、100枚の犬の写真を用意し、それぞれに「犬」とラベルを付けます。子供はこれらのラベル付き写真を通じて犬の特徴を学び、新しい写真を見たときに、それが犬かどうかを判断できるようになります。監督式学習は、多くの人工的な分類作業が必要で、人間には負担が大きいですが、機械には比較的簡単です。
**非監督式学習（Unsupervised Learning）**
非監督式学習は、データにラベルがない学習方法です。機械はデータから特徴を見つけ出し、分類を行います。この方法は人工的な分類が不要で、人間には簡単ですが、機械には挑戦が大きく、予測誤差も相対的に大きいです。例えば、非監督式学習を使って象とキリンを識別する場合、機械は100枚の写真から特徴を自ら分析し、それらの特徴に基づいて分類します。得られる分類結果は必ずしも完全ではありませんが、特定の状況では有効です。
**半監督式学習（Semi-supervised Learning）**
半監督式学習は、監督式と非監督式学習の利点を組み合わせた方法です。この方法では、一部のデータにラベルを付け、そのラベル付きデータから特徴を学び、残りのラベルなしデータを分類します。これにより、ラベル付け作業を減らしながら予測精度を向上させることができます。例えば、100枚の写真があり、そのうち10枚だけに猫か犬かというラベルを付けます。機械はこれら10枚の写真から特徴を学び、残り90枚の写真を分類します。元々一部のデータが明確な基準を提供しているため、予測結果は非監督式学習よりも正確です。
**強化式学習（Reinforcement Learning）**
強化式学習は、機械が環境との相互作用を通じて学び、期待される報酬を最大化することを目指す学習方法です。この方法ではラベル付きデータは必要なく、各動作の良し悪しについてフィードバックで教えます。機械はこのフィードバックに基づいて行動を修正し、最終的には最適な結果に到達します。例えば、小犬に「お座り」を教える場合、小犬が命令通り座ったときにおやつを与えます。座らない場合にはおやつを与えません。小犬は座ると報酬が得られることを徐々に理解し、「お座り」の命令後に座るようになります。この過程が強化学習です。強化学習は試行錯誤と環境からのフィードバックによって行動を最適化する方法であり、特に意思決定や戦略最適化が必要な応用シーンで適しています。

### 機械学習のプロセス

機械学習の基本的なプロセスは以下のステップで構成されています。

1. データ収集（Gathering data）
    - 様々なソースから関連データを収集します。これには、データベース、ウェブクローラー、実験結果などが含まれます。データの質と量は、モデルの性能に直接影響を与えます[1][3]。
2. データ準備と処理（Preparing or process the data
    - 収集したデータをクリーニングし、欠損値や異常値を処理します。また、データの正規化やトレーニングセットとテストセットへの分割なども行い、データがモデル訓練に適するようにします[1][3]。
3. モデル選択（Choosing a model）
    - 問題の特性と要求に応じて適切な機械学習モデルを選びます。例として、線形回帰、決定木、サポートベクターマシン、ニューラルネットワークなどがあります。異なるモデルは異なるタイプの問題に適しています[1][3]。
4. モデル訓練（Training）
    - 準備したトレーニングデータを使用して選択したモデルを訓練します。この過程で、モデルはデータ内のパターンや規則性を学習し、入力データと目標ラベル間のマッピングを構築します[1][6]。
5. 評価分析（Evaluation）
    - テストデータを用いてモデルの性能を評価します。これには、正確度、精度、再現率、F1スコアなどの指標を計算し、新しいデータでも良好な性能を示すことを確認します[2][4]。
6. ハイパーパラメーター調整（Hyperparameter tuning
    - 評価結果に基づいて、モデルのハイパーパラメーター（例：学習率、正則化パラメーターなど）を調整したり、異なる特徴エンジニアリング手法を選択してモデル性能を最適化します[3][4]。
7. 予測推論（Prediction）
    - 訓練済みのモデルを使用して新しいデータに対する予測を行い、実際のシナリオに適用します。これは販売予測、画像認識、音声認識などに利用されます[1][3]。



情報源
[1] 機械学習とは？ 主な手法や活用事例を徹底解説 - Tryeting https://www.tryeting.jp/column/620/
[2] AWS MLS (機械学習) 勉強記⑧ モデルのトレーニングと評価 - note https://note.com/reotaro24126/n/nd404c8fa4519
[3] 機械学習の基本 - 匠ソリューションズ https://product.takumi-solutions.com/vol35/
[4] 機械学習モデルの評価：交差検証法とホールドアウト法 - Qiita https://qiita.com/RyutoYoda/items/4ca997771e99d6c39ddb
[5] 機械学習とは簡単に言うとどんな仕組み？機械はどうやって学習 ... https://rabiloo.co.jp/blog/about-machine-learning
[6] モデルのトレーニングと評価 - ML.NET - Microsoft Learn https://learn.microsoft.com/ja-jp/dotnet/machine-learning/how-to-guides/train-machine-learning-model-ml-net
[7] 機械学習実践のプロセス ～概要から基本的な実践～ - Qiita https://qiita.com/subretu/items/ad691bcd9fe58584b027
[8] 機械学習におけるモデルの選択方法について - Datum Studio https://datumstudio.jp/blog/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E9%81%B8%E6%8A%9E%E6%96%B9%E6%B3%95%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/