第2週学習まとめ1


ML basic


深い学習の基本要素
データ=画像などのモデルの学習に必要なリソース
Model=データ取得時に学ぶべきことはex)AlexNet、LSTMなど
loss=モデルをどのように学習するか、良い目標指標exを学習するかを判断する)MSE、CE、MLEなど
アルゴリズム=損失関数を最小化したい

Historical Review


2012 : AlexNet
2013 : DQN
2014 : Encoder/Decoder, Adam
2015 : GAN, ResNet
2017 : Transformer
2018 : fine-tuned NLP models
2019 : GPT-3
2020 : Self-Supervised Learning (SimCLR)

MLP (Multi-Layer Perceptron)


せんけいかいきモデル
  • data : D={(xi,yi)}i=1N\mathcal{D}=\left\{\left(x_{i}, y_{i}\right)\right\}_{i=1}^{N}D={(xi​,yi​)}i=1N​
  • Model : y^=wx+b\hat{y}=w x+by^​=wx+b
  • loss : 1N∑i=1N(yi−y^i)2\frac{1}{N}\sum_{i=1}^{N}\left(y_{i}-\hat{y}_{i}\right)^{2}N1​∑i=1N​(yi​−y^​i​)2
  • lossを減らすために,w,b上でlossの偏微分値をそれぞれ減算した.
  • ∂loss⁡∂w\frac{\partial\operatorname{loss}}{\partial w}∂w∂loss​ = −1N∑i=1N−2(yi−wxi−b)xi-\frac{1}{N}\sum_{i=1}^{N}-2\left(y_{i}-w x_{i}-b\right) x_{i}−N1​∑i=1N​−2(yi​−wxi​−b)xi​
  • ∂loss⁡∂w\frac{\partial\operatorname{loss}}{\partial w}∂w∂loss​ = −1N∑i=1N−2(yi−wxi−b)xi-\frac{1}{N}\sum_{i=1}^{N}-2\left(y_{i}-w x_{i}-b\right) x_{i}−N1​∑i=1N​−2(yi​−wxi​−b)xi​
  • 最終的には、複数のNeural Networksを意味します.
    しかし,複数のネットワークの構築は単一ポートのネットワークと変わらない.
    単純線形結合
  • アクティブ関数
  • w←w−η∂loss⁡∂ww\leftarrow w-\eta\frac{\partial\operatorname{loss}}{\partial w}w←w−η∂w∂loss​
    b←b−η∂loss⁡∂bb\leftarrow b-\eta\frac{\partial\operatorname{loss}}{\partial b}b←b−η∂b∂loss​
    η\etaη 学習率
    単純に線形結合を繰り返すのではなく,アクティブ関数による線形結合を行う.
  • アクティブ関数
  • MLP(multi-layer perceptrons)

    1つ以上の隠れたベクトルを有するMLP(多層センサ)と呼ばれる.
    y=W2Th=W2Tρ(W1Tx)y=W_{2}^{T}\mathbf{h}=W_{2}^{T}\rho\left(W_{1}^{T}\mathbf{x}\right)y=W2T​h=W2T​ρ(W1T​x)
    loss関数は主にMSE(回帰),CE(分類),MLE(推定)などを用いる.
  • Mean Squared ErrorMSE=1N∑i=1N∑d=1D(yi(d)−y^i(d))2\mathrm{MSE}=\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}(y_{i}^{(d)}-\hat{y}_{i}^{(d)})^{2}MSE=N1​i=1∑N​d=1∑D​(yi(d)​−y^​i(d)​)2
  • cross entropy CE=−1N∑i=1N∑d=1Dyi(d)log⁡y^i(d)\mathrm{CE}=-\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D} y_{i}^{(d)}\log\hat{y}_{i}^{(d)}CE=−N1​i=1∑N​d=1∑D​yi(d)​logy^​i(d)​
  • Maximum Likelihood EstimationMLE=1N∑i=1N∑d=1Dlog⁡N(yi(d);y^i(d),1)\mathrm{MLE}=\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}\log\mathcal{N}\left(y_{i}^{(d)} ;\hat{y}_{i}^{(d)}, 1\right)MLE=N1​i=1∑N​d=1∑D​logN(yi(d)​;y^​i(d)​,1)
  • Data visualization


    データ可視化とは、データをグラフィック要素にマッピングして可視化することです.
    正解はないが,これまで研究・使用されてきた可視化のベストプラクティスにより,良好な可視化を作成できる.

    ビジュアル要素


    データセットタイプ

  • 構造化データ
  • は、通常、csv、tsvファイルとして提供される.
  • 行=データ、Column=attribute
  • テーブル列データ
  • 時間、ストリームデータ
  • 気温、株価(定型データ)+音声ビデオ(非定型データ)
  • トレンド、季節、および周期を表示します.
  • 地理データ
  • 地図情報と報告する情報との調和が重要であり,地図情報を簡略化する場合もある.
  • リレーショナルデータ
  • オブジェクトとオブジェクトとの関係
  • オブジェクトはノードであり,関係はLinkであり,マッピング方法が重要である.
  • 階層化データ
  • 会社組織図、家庭図等
  • ネットワークの可視化
  • 非構造化データ
  • データ型


    データの種類は4種類に分けられます.
  • 数値型
  • 連続型(長、重)、離散型(人数、射出目盛り)
  • カテゴリ
  • カテゴリー型(血液型、宗教)、順位型(学年、等級)
  • ビジュアル化の理解


    mark=点、線、面からなるデータの可視化
    channel=各タグの要素(色、形状、サイズなど)を変更できます.
    全州の属性=注意しなくても認知できる要素
  • による視覚分離...
  • を併用すると認知しにくくなります.
  • matplotlib

  • plt.show()=画面に表示する機能があります.Jupyterを使用すると自動的に表示されるので、呼び出す必要はありません.

  • 追加~.add subflot=subflot
    plt.図(figsize=(a,b)=a:bスケールの矩形
  • を作成する
    a = plt.figure(figsize=(9, 4))
    a.add_subplot(211) #2개로 세로로 쪼개서 위쪽에  
    a.add_subplot(212) #2개로 세로로 쪼개서 아래쪽에    
  • 色は次のように指定されます.
  • f = plt.figure()
    a = f.add_subplot(111)
    a.plot([1, 1, 1]) 
    a.plot([0, 0, 0], color = 'k') #1
    a.plot([-1, -1, -1], color = 'black') #2
    a.plot([2, 2, 2], color = '#000000') #3 hex code
    plt.show()
  • .legend()
  • f = plt.figure()
    a = f.add_subplot(111)
    a.plot([1, 1, 1]) 
    a.plot([0, 0, 0], color = 'k', label = '1') #1
    a.plot([-1, -1, -1], color = 'black', label = '2') #2
    a.plot([2, 2, 2], color = '#000000', label = '3') #3
    a.legend(loc= 1)
    plt.show()
    .legend()の場所の指定

    関数機能set title()サブブロックヘッダsuptitle()グラフィックヘッダset xticks([~])を指定してx軸の名前を指定し、リスト指定set xticklabels([])指定x軸のリストと一致させる.text(x=a,y=b,s=')(a,b)位置にsを書く機能.注記テキスト機能+矢印などの付加機能リファレンス
    f = plt.figure() #ex) set_xticks, set_xticklabels
    a = f.add_subplot(111)
    a.plot([1, 1, 1]) 
    a.plot([0, 0, 0], color = 'k', label = '1') #1
    a.plot([-1, -1, -1], color = 'black', label = '2') #2
    a.plot([2, 2, 2], color = '#000000', label = '3') #3
    a.set_xticks([0, 1, 2])
    a.set_xticklabels(['zero', 'one', 'two'])
    a.legend(loc= 1)
    plt.show()