はい!今やってます!

Work Pertly, Live Idly

Duplicateエラーが出る場合の対処法

MySQLでKey Duplicateのエラーが出る場合、

INSERT ... ON DUPLICATE KEY UPDATE

の構文を使えば解消出来る場合がある。

INSERT INTO
   ${table_name} (a, b, c)
VALUES
   (1, 12, 123)
ON DUPLICATE KEY UPDATE b = 22, c = 223;

直前に投げたSQLの結果件数を取得するSQL

Limit句に関係無く、検索対象の全件数を返してくれる。

SELECT SQL_CALC_FOUND_ROWS * FROM ${table_name} LIMIT ${limit_count};
SELECT FOUND_ROWS();

全〇〇件中 とか表示したい時に便利

【WIP】Oh-My-Shell Commands ~シェルコマンドの覚書き~

この記事について

空で打てなかったシェルコマンドをひたすら書き連ねる為の記事

特定の文字列を含むファイルを探す

  • 検索結果を含む
grep -rnw ./ -e "phrase"
  • ファイル一覧
find ./ -type f -print | xargs grep "phrase"

ディープラーニングの出力層について

ディープラーニングの出力層

ニューラルネットワークは分類問題と回帰問題に対して適応できますが、 出力層については分類問題と回帰問題とで活性化関数を変更する必要があります。
回帰問題 -> 恒等関数
分類問題 -> ソフトマックス
という風に使い分けられるのが一般的です。

分類問題と回帰問題について

分類問題は学習したものから、クラスを分類するようなものを指します。 たとえば、学習した野球選手の画像から所属する球団を分類するような場合です。 一方で回帰問題は連続的な数値の予測を行う場合に利用します。 例えば、観客席の画像から来場者数を推測する場合などです。

名前だけ難しい関数 “恒等関数”

恒等関数とは 恒等関数とは与えられた数をそのまま出力する関数です。 名前だけ難しそうに見えますが、何もしない関数です。

ソフトマックスについて

一方でソフトマックスは、各出力層が全ての入力の影響を受けます


\displaystyle y_k =  \frac{\exp(a_k)}{\sum_{i=1}^{n} \exp(a_i)}

分子は入力信号 \displaystyle a_k の指数関数、分母はすべての入力信号の指数関数の和から構成されます。

input = np.array([1, 2,...])
exp_input = np.exp(input)
sum_exp_input = np.sum(exp_input)
output = exp_input / sum_exp_input

※オーバーフロー対策が必要となる為、上記は実用的なコードではありません。

ソフトマックスで重要なのは、この関数の出力は0から1.0の間の実数になる点です。 この性質のおかげでソフトマックス関数の出力を確率として解釈することができます。

ソフトマックスの特徴は関数によって入力要素の大小関係が変わることがありません。 よって分類問題でも推論フェーズについてはソフトマックス関数が省略されることが一般的です。

【WIP】【保存版】DeepLearning / 深層学習 関連 リンク 用語まとめ

概要

これが本当にわかりやすい http://www.yukisako.xyz/entry/backpropagation

基礎

パーセプトロン ディープラーニング 活性化関数 ReLU ステップ関数 シグモイド関数 バックプロパゲーション LSTM 出力層 恒等関数 ソフトマックス

損失関数はそのニューラルネットワークがどの程度の性能かを表すための関数です。基本的な関数は二乗和誤差などが挙げられます。 求める解に対して差が大きければ大きいほど性能が悪いと言えます。

勾配降下法をミニバッチで処理するから、確率的勾配降下法となる。

過学習 パラメーターが多く、表現力が高い場合、訓練データが少ない場合に起こる 100パーセントの認識精度はテストデータで過学習を起こしている場合がある。 Weight Decay(荷重減衰) Dropoutでニューロンをランダムに消しながら学習させて対処する

ハイパーパラメータ
各層のニューロンサイズ バッチサイズ、学習関数、Weight Decay

訓練データ、検証データ、テストデータとあるうち、検証データをつかってハイパーパラメーターを検証することが多い。 ハイパーパラメーターの最適化についてはランダムなサンプリングの他、ベイズ最適化などの方法があげられます。

ライブラリと開発環境

pyenv / virtualenv anaconda IPython Jupyter NumPy pandas SciPy matplotlib PIL(Python Image Library) scikit-learn

用語

  • pickle
  • nomalize
  • flatten
  • softmax
  • predict
  • accuracy
  • shape
  • batch処理
  • miniバッチ
  • loss 損失関数関数
  • 二乗和誤差 mean squared error
  • 交差エントロピー誤差 cross entoropy error
  • ミニバッチ
  • matplotlib.pylab
  • gradient 勾配
  • gradient descent method
  • learning rate 学習率 lr (ハイパーパラメーター)
  • hidden 隠れ層
  • iter iterate 繰り返し epocs
  • layer dense dropout
  • optimizer rmsprop
  • 二次元配列
  • 2値クラス配列
  • perplexity
  • input, forgat, output gate
  • fo-pooling
  • Linear(行列積
  • Bi-directional
  • Residual Connection
  • Zero-Shot
  • Mask Convolution
  • Attention
  • SL policy network(alpha go)
  • RL policy network(alpha go)
  • value network(alpha go)
  • モンテカルロ木探索
  • 畳み込み層
  • 全結合層
  • ソフトマックス
  • 損失関数
  • 誤差逆伝播

モデル / ネット

より良いモデルは、訓練に必要なデータ量が少なく、訓練に必要な時間が少なく、訓練の精度が高い - Residual Networks(ResNet) - identity skip connection path - ResNeXt - 自己回帰モデル - LightRNN - BlackOut for RNN - QUASI-RECURRENT NEURAL NETWORKS

  • Fractal Net
  • Deep Networks with Stochastic Depth
  • Residual Networks of Residual Networks(RoR)
  • Dilated Convolution Network

  • GNMT(Google’s Neural MAchine Translation)

  • Neural Architecture Search with Reinforcement Learning モデルもRNNで作ろう

  • DNC(Differentiable Neural Computers) 汎用型

論文

arxivで上げられた論文をサマってる。便利。 http://arxivtimes.herokuapp.com/

音声

  • Dilated Convolution
  • Residual Networks

動画

  • fractionally-strided spatio-temporal convolutions
  • fractionally-strided spatial convolutions
  • PredNet
  • Deep Predictive Coding Networks
  • ConvLSTM
  • Densely Connected Convolutional Networks

画像

  • Pixel RNN
  • Image-to-Image Translation with Conditional Adversarial Nets
  • Conditional GAN
  • PatchGAN
  • StackGAN

言語

  • Pointer Sentinel Mixture Model
  • Polnter Network
  • GNMT(Google’s Neural MAchine Translation)
  • ByteNet

評価 / テスト

コーパス TIMIT 音声認識 MNIST CIFER-100 画像 ILSVRC 2016 画像認識 DCGAN 画像生成?? Penn Treebank dataset(PTB) BLUE 翻訳?

実行環境

Google Cloud Machine Learning(GCP)

メールアドレスのドメイン部分を一括で置換するSQL

メールアドレスのドメイン部分を一括で置換する

UPDATE
  `test_user`
SET
  `email` = CONCAT(
      LEFT(
          `email`,
          INSTR(`email`, '@')
      ),
      'test.com'
  )
WHERE
  `email` NOT LIKE '%@test.com';

メールアドレスのドメイン毎に件数を集計する

select SUBSTRING(email,LOCATE('@',email)) as domain , count(*) as count from user group by domain;