タグ

ブックマーク / qiita.com/koshian2 (10)

  • Triplet lossを使った高速な異常検知 - Qiita

    import tensorflow as tf from keras import layers from keras.models import Model import keras.backend as K from keras.optimizers import SGD from keras.applications import MobileNetV2 from keras.callbacks import LearningRateScheduler, ModelCheckpoint from keras.datasets import fashion_mnist import numpy as np from tqdm import tqdm from sklearn.metrics import euclidean_distances, roc_auc_score def cr

    Triplet lossを使った高速な異常検知 - Qiita
    stealthinu
    stealthinu 2019/08/15
    先にRTしてた異常検知の件、@shinmura0さんと@koshian2さんが互いに研究結果コラボしてって結果的に出来たものとのこと。その経緯がかっこいいのう…
  • 対決!RTX 2080Ti SLI vs Google Colab TPU ~PyTorch編~ - Qiita

    RTX 2080Tiを2枚使って頑張ってGPUの訓練を高速化する記事の続きです。TensorFlowでは複数GPU時に訓練が高速化しないという現象がありましたが、PyTorchを使うとRTX 2080Tiでもちゃんと高速化できることを確認できました。これにより、2GPU時はTensorFlowよりも大幅に高速化できることがわかりました。 前回までの記事 対決!RTX 2080Ti SLI vs Google Colab TPU ~Keras編~ TensorFlow/Kerasでchannels_firstにするとGPUの訓練が少し速くなる話 ハードウェアスペック GPU : RTX 2080Ti 11GB Manli製×2 SLI構成 CPU : Core i9-9900K メモリ : DDR4-2666 64GB CUDA : 10.0 cuDNN : 7.5.1 PyTorch :

    対決!RTX 2080Ti SLI vs Google Colab TPU ~PyTorch編~ - Qiita
    stealthinu
    stealthinu 2019/05/27
    PyTorch/TensorFlowとGPU/GPUx2/TPUでの比較。PyTorchだとGPUx2で速くなってるがそんなに圧倒的ではない感。結局TPU最つよという印象を受けた。
  • 2つの画像を混ぜるData Augmentation:「Between-class Learning(BC-Learning)」の効果をKerasで確かめる - Qiita

    画像や音声分類の汎化性能を向上させる目的で開発されたBetween-class Learning(BC-learning)というData Augmentationの効果をKerasで確かめます。「2つの画像を混ぜる」というアプローチを取るData Augmentationです。10層CNNでCIFAR-10に対して94.59%という素晴らしい性能を確認することができました。 BC-Learningとは? 2つの画像を混ぜるというData Augmetation。これにより、決定境界がより平滑化され、オーバーフィッティングが解消され、ValidationやTestでの汎化性能が向上する。 BC-learningのもともとの着想は音声認識からでした。人間でも、例えば英会話で2つの音を同時に聞くことで学習効率が向上する、というのは耳にします。2つの画像を混ぜても人間には特に意味はないかと思われま

    2つの画像を混ぜるData Augmentation:「Between-class Learning(BC-Learning)」の効果をKerasで確かめる - Qiita
    stealthinu
    stealthinu 2019/03/27
    Mixup似たBC-Learningという手法について。簡単な構造のネットワークでもCIFAR-10の認識94%とかなってる。すげえ。
  • BC-Learningを大きなバッチサイズに対して適用する - Qiita

    学習率が高すぎるという状況を回避するために、学習率の減衰は入れています。バッチサイズ128のときと同様、Adamのオプティマイザーで初期学習率を1e-3とし、100、150、200エポックでそれぞれ学習率を1/5にしました。引き続き、TensorFlow・KerasのTPUで訓練させています。 ちなみにバッチサイズ128のときの同条件の精度は0.9173でした。ちょっと低すぎるような気がします。 なんとなくα=0.5~1のあたりにスイートスポットがありそうな気がしますね。0.55~0.95まで同じ条件で細かく(0.05刻みで)見てみましょう。別に調べました。 確かに0.55は高いけどノイズ挙動だよねという感は否めません。なので、おそらく確率を第一に疑うのは間違いでしょう。ベータ分布の値を3、4と大きくしたときは明らかに落ちているので、確率はチューニングの余地があるのは否定はしません。しかし

    BC-Learningを大きなバッチサイズに対して適用する - Qiita
    stealthinu
    stealthinu 2019/03/27
    バッチサイズと初期学習率の最適値について。バッチサイズ1024で128と同じ結果出したいとき128のときの学習率を8倍するといけるらしい。g=ε(N/B-1)という式があると。
  • Kerasで学習済みモデルに任意のレイヤー(BatchNorm、Dropoutなど)を差し込む方法 - Qiita

    転移学習として訓練済みモデルは非常に有用ですが、たまに途中にDropoutを入れたい、BatchNormを入れたいなど困ったことがおきます。今回はVGG16にBatchNormを入れる、MobileNetにDropoutを入れるを試してみます。 VGG16にBatchNormalizationを入れる 理論と実装上の注意 転移学習としてよく使われるVGG16ですが、実は古臭いモデルでBatchNormalizationが入っていません1。現在の分類問題において、よほどの理由がなければBatchNormalizationは入れるべきなので入れてみましょう2。 VGG16では、「Conv→Conv→Conv→Pool」のように並んでいますが、Conv→Convを「Conv→BatchNorm→ReLU→Conv→…」と置き換えます。また元のConvにはReLUの活性化関数がついているので、Co

    Kerasで学習済みモデルに任意のレイヤー(BatchNorm、Dropoutなど)を差し込む方法 - Qiita
    stealthinu
    stealthinu 2018/12/21
    KerasでModelとModelをくっつけるとGPUでは動くのだがTPUでは実行時エラーとなるのでどうしたらいいのだ… となってたのこちらの書き方ならいける。
  • Batch Normalizationの効果を畳み込みニューラルネットワークで検証 - Qiita

    Batch Normalization(BatchNorm)の効果を畳み込みニューラルネットワーク(CNN)で検証します。BatchNormがすごいとは言われているものの、具体的にどの程度精度が上昇するのか、あるいはどの程度計算速度とのトレードオフがあるのか知りたかったので実験してみました。 今回は隠れ層の数とBatch Normの有無、Batch Normの頻度ごとに誤差・精度を検証します。 Batch Normの簡単な理論 ニューラルネットワークの入力層(訓練データ)に対して標準化をすると訓練速度が向上しますが、これを隠れ層に対しても標準化するのがBatch Normです。 \begin{align} \mu&=\frac{1}{m}\sum_i z^{(i)} \\ \sigma^2 &= \frac{1}{m}\sum_i (z^{(i)}-\mu)^2 \\ z_{\rm nor

    Batch Normalizationの効果を畳み込みニューラルネットワークで検証 - Qiita
    stealthinu
    stealthinu 2018/12/18
    Batch Normalizationの効果を実験。Fashion-MNIST程度の課題サイズで。だと確かに訓練データはよくなってるけどテストデータではそんなによくない??なんでもBN入れたほうが良い気になってた。
  • オートエンコーダーとしてのU-Net(自己符号化から白黒画像のカラー化まで) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 画像の領域検出(セグメンテーション)によくコンペなどで使われるU-Netですが、オートエンコーダー(AE:Auto Encoder)としての側面もあります。今回はU-NetをAEの側面から見て、自己符号化や白黒画像のカラー化といったAEっぽいことをしてみます1。なぜU-Netが強いのかより理解できることを期待します。 全体コード:https://gist.github.com/koshian2/6bcfb03dbc187024da9e86b24c44a5b3 TL;DR U-Netが強いのはEncoderとDecoderとの間に「Con

    オートエンコーダーとしてのU-Net(自己符号化から白黒画像のカラー化まで) - Qiita
    stealthinu
    stealthinu 2018/11/12
    オートエンコーダー使って白黒写真の自動着色をやってみる例。AEのなかでもResNetみたいに層を超えて直接デコーダとつながってる結線があるものを特にU-Netという呼び名あるのね。
  • Google ColabのTPUで対GPUの最速に挑戦する

    前回の記事が思わぬ反響で驚愕していますが、今回はColabのTPUを限界まで試してみたいと思います。特殊な条件にするとColabのTPUは、GPU比で20倍以上速くなることがわかりました。しかも無料です。それを見ていきましょう。 TPUがGPUと比べて速くなる条件とは 前回の結果からTPUがGPUと比べて速くなる条件は2つあることがわかりました。 多層パーセプトロン(MLP)よりも畳み込みニューラルネットワーク(CNN)であること バッチサイズを大きくできること 1点目ですが、CNNだから速いのではなく、CNNがパラメーター数の割に計算量が多い、つまり訓練時間のうち計算量が支配的になるからと捉えることもできます。なぜなら、CNNは1つの畳み込みフィルターでパラメーターを使いまわしするのですから。 またGPUで行ったフレームワーク別の調査をTPUに適用したところ、TPUではモデル(ResNe

    Google ColabのTPUで対GPUの最速に挑戦する
    stealthinu
    stealthinu 2018/11/09
    ColabのTPUはGPUに対してどれだけ速いか、速くするためのtipsなど。実験してデータ取られてるので非常に参考になる。
  • Google ColaboratoryのTPUを試してみる

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TL;DR ColabのTPUを使って今すぐCNNを試してみよう。ものすごい速いぞ。 はじめに 9/26夜、Google Colaboratoryユーザーに激震が走った。 **ハードウェアアクセラレータにTPUが使えるようになってる!?**TPU(Tensor Processing Unit)凄さはこのニュースを見れば恐ろしいほど伝わってくる。 COOL Chips 21 - GoogleWebサービスを支える「TPU」 https://news.mynavi.jp/article/20180424-621091/ TPU v1はIn

    Google ColaboratoryのTPUを試してみる
    stealthinu
    stealthinu 2018/09/30
    ColabでTPU使えるようになったけどそんなに早くない?と思ったらやっぱ早い。でかいネットワークでバッチサイズでかいと差が大きいと。/追試したがめちゃくちゃ速い。TPUすごい。
  • 畳み込みニューラルネットワークすごさを従来の機械学習のアルゴリズムと比較する - Qiita

    畳み込みニューラルネットワーク(CNN)が画像判別でよく使われるというのは知っていても、従来の機械学習アルゴリズムと比較してどれぐらいすごいものなのかというのがいまいちピンとこなかったので確認してみました。だいぶ長いよ! 概要 機械学習のアルゴリズムとして、ディープラーニングが出る前は例えばロジスティック回帰、サポートベクトルマシン、ランダムフォレストなどがありました。従来の手法というと漠然としますが、Scikit-learnでできるアルゴリズムと考えてよいです。これらの手法は現在でも有効で、これらのどれを使っても、手書き数字(MNIST)に対して最低でも8割、ちゃんと実装すれば9割の精度は出ます。Scikit-learnはとても使いやすいライブラリで、学習効率・実装効率ともによく、計算が比較的簡単なので高速です。逆にその段階で9割近く出ちゃうと、「学習が大変で処理も遅いディープラーニング

    畳み込みニューラルネットワークすごさを従来の機械学習のアルゴリズムと比較する - Qiita
    stealthinu
    stealthinu 2018/06/15
    畳み込みとプーリングの処理なにが効くのか確認してるの面白いと思ったのだが、これ効かないのは単に畳み込みしてるだけで畳み込み層の学習がされないからでは。
  • 1