次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、 scikit-learn を用いて、線形回帰モデルに確率的勾配降下法を適用して X、y を学習させ、傾きと切片を予測してください. 試行回数は 50 回とする. import numpy as np np.random.seed(0) X = 2 * np.random.rand(100,1) y = 4 + 3 * X + np.random.rand(100,1) # Q1:scikit-learn から確率的勾配降下法用のクラスをインポートしてください. ########## [Q1の選択肢] 1. from sklearn.decomposition import SGDRegressor 2. from sklearn.linear_model import SGDRegressor 3. from sklearn.metrics import SGDRegressor # Q2:Q1 でインポートしたクラスを用いて線形回帰モデルを定義してください. sgd […]
Category Archives: 未分類
ミニバッチ勾配降下法 – ミニバッチ
ミニバッチ勾配効果法の説明として正しくないものを選択肢 1 ~ 4 から選んでください. 1. 大きな訓練セットに対しても比較的早く計算が完了する. 2. scikit-learn にはミニバッチ勾配降下法のクラスがある. 3. 確率的勾配効果法よりも、最適な解に近づける. 4. アウトオブコアアルゴリズムとして実装できない.
ミニバッチ勾配降下法
バッチ勾配効果法の説明として正しいものを選択肢 1 ~ 4 から選んでください. [選択肢] 1. イテレーションごとにランダムにサンプリングされたサンプルを用いて、偏微分によって勾配を計算するため解への収束スピードが早いが、 解が 1 つに定まらない不規則性をもつ.しかし、モデルが局所的な最小値に収束してしまうのを避けることができる. 2. 無策にいくつかのインスタンスをサンプリングすることでミニバッチを用意し、そのミニバッチを用いて勾配を計算していく. 収束スピードは早く、また、十分最適な解へ収束することができる.また、 GPU との相性も良い. 3. 全ての訓練インスタンスを用いて勾配を計算するため、安定して最適解に収束することができる. しかし、訓練セットが大きくなると収束までに非常に時間がかかる. 4. 最適な解に近くことはできるが、1 つに定まらない.しかし、訓練が進むにつれて徐々に学習率を小さくしていくことで、 最適解にたどり着くことができる.
ミニバッチ勾配降下法の実装
次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、 ミニバッチ勾配降下法で X、y を学習し傾きと切片を求めてください. import numpy as np np.random.seed(0) X = 2 * np.random.rand(100,1) y = 4 + 3 * X + np.random.rand(100,1) X_b = np.c_[np.ones((100, 1)), X] epochs = 50 minibatch_size = 20 m = len(X_b) np.random.seed(0) theta = np.random.randn(2,1) t0, t1 = 200, 1000 def learning_schedule(t): return t0 / […]
バッチ勾配降下法
バッチ勾配効果法のデメリットとして正しいものを選択肢 1 ~ 4 から選んでください. [選択肢] 1. ハイパーパラメータの数が非常に多く、調整に時間がかかる. 2. イテレーションを増やしたとしても最適な解との誤差が小さくならない. 3. 勾配を計算するために各ステップで訓練セット全体をバッチとして用いるため、計算時間が大きなる. 4. 最適な解に十分近くことはでききるが、解は一箇所には定まらず不規則となる.
バッチ勾配降下法
バッチ勾配効果法の説明として正しいものを選択肢 1 ~ 4 から選んでください. [選択肢] 1. イテレーションごとにランダムにサンプリングされたサンプルを用いて、偏微分によって勾配を計算するため解への収束スピードが早いが、 解が 1 つに定まらない不規則性をもつ.しかし、モデルが局所的な最小値に収束してしまうのを避けることができる. 2. 無策にいくつかのインスタンスをサンプリングすることでミニバッチを用意し、そのミニバッチを用いて勾配を計算していく. 収束スピードは早く、また、十分最適な解へ収束することができる.また、 GPU との相性も良い. 3. 全ての訓練インスタンスを用いて勾配を計算するため、安定して最適解に収束することができる. しかし、訓練セットが大きくなると収束までに非常に時間がかかる. 4. 最適な解に近くことはできるが、1 つに定まらない.しかし、訓練が進むにつれて徐々に学習率を小さくしていくことで、 出来るだけ最適解に近い値に収束させることができる.
バッチ勾配降下法の実装
次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、バッチ勾配降下法で X、y を学習し傾きと切片を予測してください. また今回は、学習率を 0.1 として訓練してください. (変数 eta、 gradients はそれぞれ学習率と勾配ベクトルを表しています.) import numpy as np np.random.seed(0) X = 2 * np.random.rand(100,1) y = 4 + 3 * X + np.random.rand(100,1) # Q1:X の各インスタンスに x0 = 1 を加え、変数 X_b に代入してください. X_b = ########## eta = 0.1 iterations = 1000 m = len(X_b) theta […]
バッチ勾配降下法の実装
次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、バッチ勾配降下法で X、y を学習し傾きと切片を予測してください. また今回は、学習率を 0.1 として訓練してください. (変数 eta、 gradients はそれぞれ学習率と勾配ベクトルを表しています.) import numpy as np np.random.seed(0) X = 2 * np.random.rand(100,1) y = 4 + 3 * X + np.random.rand(100,1) # Q1:X の各インスタンスに x0 = 1 を加え、変数 X_b に代入してください. X_b = ########## eta = 0.1 iterations = 1000 m = len(X_b) theta […]
収束率、許容誤差 ε
許容誤差を 1/100 にすると収束するまでのイテレーションは何倍になるか求めてください.
収束率、許容誤差 ε
許容誤差を 1/1000 にすると収束するまでのイテレーションは何倍になるか求めてください.