| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
4,811 バイト追加 、 2021年11月19日 (金) 12:08
| [[機械学習]] | [[数学]] | [[統計]] | [[ベイズ統計]] | [[データ解析]] | [[R]] | [[Anaconda]] |[[Python NumPy]] | [[TeX]] |{{amazon|B08YMT9K15}}
==[https://www.tensorflow.org/?hl=ja TensorFlow]==
*Googleが公開した機械学習フレームワーク
*便利な[[Python]] APIと比較すると劣るがC++ APIを備える
*すべての[[数学]]は抽象化される
*[https://www.tensorflow.org/tensorboard/get_started?hl=ja TensorBoard]というインタラクティブ=な可視化環というインタラクティブ=な可視化環境*機械学習のためのアルゴリズムを関数やメソッドとしてライブラリにまとめているので、機械学習のためのモデルをフローチャートとして記述することで実装できる*Keras:Tensorflow特有の難解なプログラミング手法を簡素化し、直感的にコーディングできるようにしたラッパーライブラリ**Kerasのユーザー増加を鑑みコアライブラリとしての組み込みを経て、Tensorflow2.0ではAPIの一部として組み込み  
===ドキュメント===
----
! scope="col"| 備考
|-
| tf.add(x,y)|同じ型のTensorを足し算
|
|-
| tf.subract(x,y)|同じ型のTensorを引き算
|
|-
| tf.multiply|2つのTensorに対して[[Python NumPy|行列の積]]を求める
|
|-
| tf.pow(x,y)|xの要素ごとにy乗
|
|-
| tf.exp(x)|xの指数を要素ごとに計算します。<math>y=e^x</math>
|
|-
| tf.sqrt(x)|xの平方根を求める
|
|-
| tf.div(x,y)|xとyの要素ごとの除算|
|-
| tf.truediv|xとyの要素ごとの除算(Python 3 の除算演算子のセマンティクスを使用)
|
|-
| tf.floordiv |xとyの要素ごとの除算を行い整数に丸める
|
|-
| tf.mod(x,y)|要素ごとの剰余
|
|-
(3, 5) --> (5, 3)
</pre>
 
==線形回帰分析==
===回帰式===
<math>y = ax + b</math>
===最小二乗法===
求め方
*数式展開
*勾配降下法による近似解
 
関数の最小点を見つけることを機械学習の分野では最適化問題、最適化と呼び、最適化を行う対象は関数なので、これを目的関数と呼ぶ
回帰分析で残差平方<math>{\varepsilon}^2</math>を表す式
 
残差平方和 J (データと直線の差の二乗和)を表す目的関数
 
<math>J = \sum_{i=1}^{n}\{{y}_{i}-(ax_i+b)\}^2</math>
 
*プログラムで扱いやすいように未知のaとbを<math>\theta</math>を利用して以下とする
 
<math>f_\theta(x) = \theta_0 + \theta_1{x}</math>
 
*<math>E(\theta)</math>とすれば目的関数を以下のようにあわらすことができる。(<math>\frac{1}{2}</math>は計算をしやすくするためだけで影響はない)
 
<math>E(\theta) = \frac{1}{2}\sum_{i=1}^{n}\{{y}_{i}-f_\theta(x_i)\}^2</math>
 
===勾配降下法===
*勾配法は繰り返しの計算により近似的な値を求める計算法、関数が描く曲線の最小値を求める手法を特に勾配降下法とよぶ
*勾配降下法では、微分によってえられた導関数の符号と逆方向へxを向かわせることでf(x)を最小に向かわせるのが、次式
 
<math>x := - {\eta}\frac{d}{dx}{f(x)}</math>
 
*η は学習率と呼ばれる正の定数で、学習によって最小値に収束する速さを調整する
*E(θ)に含まれる<math>f_{\theta}({x_i})</math>は、<math>{\theta}_0</math>、<math>{\theta}_1</math>の2つのパラメータを持つ二次関数のため、偏微分となり次式のようになる
 
<math>{\theta}_0 := {\theta}_0 - {\eta}\frac{{\partial}E}{{\partial}{\theta}_0}</math>
 
<math>{\theta}_1 := {\theta}_1 - {\eta}\frac{{\partial}E}{{\partial}{\theta}_1}</math>
 
====バックプロパゲーション(誤差逆伝播)====
*https://thinkit.co.jp/article/15787
*配降下法では、ネットワーク内の全ての重みについて<math>\frac{{\partial}E}{{\partial}W}</math>を計算しなければいけない
*一度に計算するのではなく、出力層のニューロンから目的のニューロンまでの経路で得られる様々な偏微分の値を用いて計算を可能にする
*具体的には「[https://manabitimes.jp/math/1303 連鎖律の原理]」という非常に強力な微分の法則を用いる
*[https://manabitimes.jp/math/936 合成関数の微分]
*具体例
 
<math>y(w_1,w_2) = ({w_1}{x_1} + {w_2}{x_2})^2</math>
 
*<math>w_1,w_2</math>の関数を考えたとき<math>y(w_1,w_2)</math>を2つの関数の合計とみなす
 
<math>y = s^2</math>
 
<math>s = {w_1}{x_1} + {w_2}{x_2}</math>
 
===データの標準化===
*勾配法によるパラーメータの更新は状況によってはなかなか収束しないことがある。
*パラメータの収束を早める措置として標準化を行う。
*標準化を行い、平均=0、標準偏差=1のデータに変換することで、データスケールを小さくする効果がある
====[https://cognicull.com/ja/62vb4xyx 分散]====
*[https://cognicull.com/ja/62vb4xyx 分散]
*偏差平方和をデータの個数で割ったもの
====[https://cognicull.com/ja/et7cim2q 標準偏差]====
*[https://cognicull.com/ja/et7cim2q 標準偏差]
*分散の平方根
*データのばらつき具合を表しています。平均から大きく離れているデータが多ければ多いほど、標準偏差は大きくなります
====標準化====
*個々のデータの偏差が、標準偏差いくつ分かを求める
*標準正規分布
 
<math>
標準化 = \frac{データ - 平均}{標準偏差}
</math>
==Tips==

案内メニュー