<実戦機械学習基礎1週間>機械学習,線形回帰

7197 ワード

学習のまとめ
  • 機械学習は
  • です.
  • 線形回帰
  • 機械学習実習
  • 1.機械学習


    1)定義
    人工知能(AI)の分野で、データとアルゴリズムを使って人間が学習を通じて精度を徐々に改善する方法を模倣することに専念している.機械学習は機械に人間が直接行うことが難しい複雑な計算と演算を学習させ、解決させることである.
    2)解題方法
    機械で問題を解く方法は大きく二つに分かれている.回帰、分類、そして両方使える問題があります.もう一度よく観察してください.
    (1)復帰
    予測する結果値(出力値、依存変数)を学習方法を指導する連続数値(ex.小数点、整数など)として使用する方法.
    (2)分類
    学習方法を指導するもう1つの方法として、予測する結果が特定の名前、文字、または判別に使用される数字である場合に使用される方法.分類はまた2種類に分けることができて、2つのバイナリ分類、2つ以上の多重分類.
    (3)回帰、分類は可能
    たとえば、年齢セグメントをカテゴリに分けて特定の数値で表す場合、年齢を予測する問題は回帰と分類を使用することができます.
    (4)量子化・分類データ
    上に回帰と分類解題の方法を分け,この過程で従属変数の説を見た.予測する依存変数が量子化データ、すなわち比較可能な連続数値のデータである場合、回帰が使用されます.依存変数が区別可能な名前またはラベルの数値である場合は、分類を使用します.
    2)学習方法
    機械学習の方法は大体3種類ある.指導学習、非指導学習、強化学習.それぞれを見てみましょう.
    (1)指導学習
    入力するデータを正解の結果値とともに学生にどのように教えるか.その種類には回帰と分類がある.
    (2)指導なし学習
    結果値がない場合、入力データのみを送信・学習する方法は、データが多く正確な値がない場合に便利です.種類はクラスタ化,可視化,階層縮小,関連ルール学習である.
    (3)学習強化
    指定されたデータがない場合に実行とエラーの方法を繰り返し学習する.これは特定の行為の補償を得ることによって学習する方法である.アルファ高校で学ぶ方法は学習を強化することだ.
    それぞれの学習方法の詳細については、次回詳しく説明します.

    2.線形回帰


    1)定義
    コアについては,すべての問題が線形に解くことができると仮定する.特定のデータをグラフィックで表す場合、グラフィック上の点は任意の直線近似で表すことができると仮定します.この任意の直線(仮定)は線形モデルで、式は次のとおりです.

    グラフィック内の元の値を正確に予測するためには、任意の直線とその値との距離を縮小する必要があり、これらの値を求める式を損失関数(費用関数)と呼び、以下に示す.

    この値が最小の場合にのみ,モデル学習をうまく行うことができる.
    2)多重線形回帰
    線形回帰と同様に、入力変数(値)が2より大きい場合に使用します.この点を表す仮定と損失関数の式は次のとおりです.

    3)損失関数の最適化
    目標は損失関数を最小化することである.しかし、その方法は多種多様である.今日はその中の傾斜降下法(SGD)を見てみましょう.
    例えば、損失関数は二次関数パターンの形式であると仮定する.

    つまり、グラフに基づいて最もコストの低い場所を探します.ここで勾配が徐々に下がって、その点を探して、この方法を傾斜降下法と言います.
    このとき,移動する単位を学習率と呼び,適切な値を設定することが肝心である.大きすぎると最小点が見つからず、その辺りを歩き回ってしまい、最悪の場合は無限発散(超調)です.逆に、小さすぎると、時間がかかり、効率的ではありません.

    上図に示すように、現実の問題は非常に複雑で、二次関数ではなく、複数回の関数のグラフィック形式である可能性があります.ここではglobal cost minimumを探すのが目標ですが、閲覧を終了せずにlocal cost minimumに陥ることに注意してください.

    3.機械学習実習


    1)データセット
    モデル学習に必要なデータは大きく3つに分類される.
    (1)学習データセット
    Traing datasetと呼ばれ、通常はデータセット全体の80%程度が割り当てられます.マシンがモデルを学習するときに入力するデータセット.
    (2)データセットの検証
    Validationデータセットと呼ばれ、総データの20%を占めています.モデルの性能を検証し,最適化方法や損失関数などを変えることで検証する.このデータセットは、モデルに直接データを表示せず、評価目的にのみ使用され、モデルのパフォーマンスに直接影響しません.
    (3)テストデータセット
    学習したモデルの最終評価に使用するデータセットをテストします.実際の環境でデータセットを提供し、正常に動作しているかどうかを確認します.
    (4)データセットの割合
    通常、80%は学習、20%は検証に使用されますが、分割には2つの重要な考慮事項があります.
  • が所有するデータの総数
  • 訓練の実際のモデルで使用されたサンプル数
  • 様々な変形実験を行い、決定してこそ、最適な割合を見つけることができる.
    2)リニア回帰実習
    kerasを用いて線形回帰モデルを簡単に構築できた.
    import numpy as np
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    from tensorflow.keras.optimizers import Adam, SGD
    numpi、シーケンスモデル(sequence)、dens(dense)レイヤ、最適化技術(adam,sgd)をインポートします.
    x_data = np.array([[1], [2], [3]])
    y_data = np.array([[10], [20], [30]])
    入力値と出力値を作成します.
    model = Sequential([
      Dense(1)
    ])
    ネストされたレイヤを持つシーケンスモデルを作成して定義します.
    model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.1))
    
    model.fit(x_data, y_data, epochs=100)
    損失関数と最適化技術を要素としてモデルを構築し,データをモデルに学習した.この時期、学習回数は常に複数形で記録される.
    y_pred = model.predict([[4]])
    print(y_pred)
    モデルの予測値を出力します.
    後で勉強して、具体的な要素と詳細な内容をよく整理します.
    理解しにくい、または全く理解していない内容
    機械学習の用語はまだ疎かで,モデルの作成と学習の過程はまだ完全に理解されていない.潮流がどのように過ぎ去ったのかしか知らない.損失関数がどれらがあるか、最適化方法がどれらがあるか、適切な学習回数がどれだけあるかは分かりにくい.焦らないで、ゆっくり理解して、よく整理してください.