タグ

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

  • 学習率のWarmupで大きいバッチサイズでもいい感じに訓練する - Qiita

    最近になって論文でたびたび目にする学習率のWarmupについて、CIFAR-10で実験してみました。その結果、Warmupを使うとバッチサイズの増加にともなう精度の急落を、ある程度緩和できることがわかりました。大きいバッチサイズで訓練したり、訓練を高速化したい場合は、このWarmupが非常に有効となるでしょう。 きっかけ Google I/O'19の講演を聞いていたら、学習率のウォームアップについて話していました。RetinaNetをTPUで訓練する話です。 曰く、「このケースではResNet50の訓練済みモデルを初期値として使い、レイヤーを固定せず、全てのレイヤーを訓練させる。大きいバッチサイズを使っているので、訓練済み係数が壊れてしまう可能性がある。学習の最初は低い学習率を使い、徐々にあげていくという学習率のコントロールを行う」(ビデオ39分付近)とのことです。 このアイディアはこの講

    学習率のWarmupで大きいバッチサイズでもいい感じに訓練する - Qiita
  • CIFAR-10を疑似ラベル(Pseudo-Label)を使った半教師あり学習で分類する - Qiita

    TL;DR 半教師あり学習の1つの手法である、疑似ラベルをCIFAR-10で試した サンプル数が少ない場合は、疑似ラベルを使うことでテスト精度を引き上げることができた ただし、転移学習と比べると若干見劣りすることもある 元ネタ かなり平易に書かれた論文なので読みやすいと思います。 Dong-Hyun, Lee. Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks. 2013 http://deeplearning.net/wp-content/uploads/2013/03/pseudo_label_final.pdf 半教師あり学習とは 「教師あり学習」と「教師なし学習」の間の子。教師あり学習のように$(X, y)$とラベル付けされたデータと、教師

    CIFAR-10を疑似ラベル(Pseudo-Label)を使った半教師あり学習で分類する - Qiita
  • 機械学習/ディープラーニング初心者が2018年にやったこと、読んだ論文 - Qiita

    2018年もいよいよ日が最後となりました。皆さんいかがお過ごしでしょうか。この記事では機械学習/ディープラーニング初心者だった自分が2018年にやったことをまとめていきたいと思います。ポエムじみた記事になってしまいましたが、何らかの参考になれば幸いです。 2018年のBefore-After Before 今年(4月)ぐらいまで機械学習の「き」の字も知らなかった。k-Nearest Neighbor?Support Vector Machine?なにそれ美味しいのってレベル 昔統計をやっていたので、ロジスティクス回帰ぐらいは知っていた。オーバーフィッティングの概念ぐらいは知っていたが、厳密な定義は知らなかった。 Pythonも触ったことなかった After 機械学習とディープラーニングの基礎はだいたいわかった Pythonがだいたい使いこなせるようになった 物によってはディープラーニング

    機械学習/ディープラーニング初心者が2018年にやったこと、読んだ論文 - Qiita
  • Python覚えて3ヶ月の素人がCoursera Deep Learning Specializationを1週間で完走した話 - Qiita

    Python覚えて3ヶ月の素人がCoursera Deep Learning Specializationを1週間で完走した話PythonDeepLearningポエムディープラーニングcoursera CourseraのDeep Learning Specializationの5コースを1週間で完走してきたので体験レポートを書きたいと思います。1週間での完走はほとんどエクストリームスポーツだったので、実践する方は注意してください。 きっかけ Andrew Ng先生のCousera Machine Learningを受講したら面白かったので、同じAndrew Ng先生ディープラーニングのコースも受講することにしてみました。ただし、機械学習のコースと異なり、ディープラーニングのコースを完全にクリアするには課金(2018年5月現在月額49ドル)が必要です1。CourseraにはFinancia

    Python覚えて3ヶ月の素人がCoursera Deep Learning Specializationを1週間で完走した話 - Qiita
  • 具体例で覚える畳み込み計算(Conv2D、DepthwiseConv2D、SeparableConv2D、Conv2DTranspose) - Qiita

    具体例で覚える畳み込み計算(Conv2D、DepthwiseConv2D、SeparableConv2D、Conv2DTranspose)Python機械学習DeepLearningKeras TL;DR Conv2D, DepthwiseConv2D, SeparableConv2D, Conv2DTrasposeの計算過程をKerasの数値例で確かめた。 Optunaを使って、これらのレイヤーを組み合わせたモジュール構成の探索を行った。Optunaによると、パラメーター数を減らすことと精度を維持する点では、MobileNetやXceptionの構成は理にかなっていることがわかった。 表記 この記事ではデータ(画像)の軸を次のように表記します。2次元の画像なので、1サンプルあたり(縦, 横, チャンネル)=$(Y, X, C)$の3次元の配列(テンソル)となります。テンソルという言葉が怖

    具体例で覚える畳み込み計算(Conv2D、DepthwiseConv2D、SeparableConv2D、Conv2DTranspose) - Qiita
  • 「FaceNet: A Unified Embedding for Face Recognition and Clustering」の解説と実装 - Qiita

    「FaceNet: A Unified Embedding for Face Recognition and Clustering」の解説と実装Python機械学習MachineLearningDeepLearningディープラーニング Siamese Network+Triplet lossの論文として名高い「FaceNet」の論文を読んだのでその解説と実装を書いていきます。Train with 1000を使って実験もしてみました。 TL;DR FaceNetはある画像に対して、同一のクラス(人物)の画像、異なるクラスの画像の合計3枚の「Triplet」を作り、画像間の距離を学習する。 画像を特徴量のベクトルに変換し、プロットする一方で、k-Nearest Neighbor法の要領で未知の画像に対するクラスの推定もできる。またクラス数が後から追加されたり削除されたりするようなパターンでも

    「FaceNet: A Unified Embedding for Face Recognition and Clustering」の解説と実装 - Qiita
  • Triplet lossを使った高速な異常検知 - Qiita

    ちょっとぉ!1ms切っちゃうの??? 多分こんなの機械側が追いつかないと思います。自分で書いてて言うのもあれだけどありえねぇ…… ワイ「これ製造業に売り込みに行こうかな」 ちなみにこれ、訓練も結構速いです。普通に54000枚画像回しているだけですが、20エポック目ぐらいにはほぼ損失が収束します。50エポックも回せば十分です。ColabGPUで2時間もかかりませんでした。 まとめ Triplet lossのオンラインTriple選択を使うとえらく高速な異常検知ができるということが確認できました。面白い論文を紹介してくださった@shinmura0さんどうもありがとうございました。 コード import tensorflow as tf from keras import layers from keras.models import Model import keras.backend as

    Triplet lossを使った高速な異常検知 - Qiita
  • Google ColabでやるPyTorchとKerasの比較(DenseNetを例に) - Qiita

    PyTorchは速いぞ」という記事がいろいろ出てて気になったので、何番煎じかわかりませんが、どのぐらい速いんだろうと思って実験してみました。実験するのはこの前作ったDenseNetです。 環境 Google Colab GPUはTesla K80、ハードウェアアクセラレータはON Kerasのバージョンは2.1.6、PyTorchのバージョンは0.4.1 条件 Dense Netの論文の条件を若干アレンジしたものです。Data Augmentationはシンプルにしました。 成長率K=16とし、DenseNet-121と同じ構成のDenseNetを作る CIFAR-10を分類する Data Augmentationは左右反転、ランダムクロップのみ。 L2正則化(Weight Decay)に2e-4(0.0002)。ドロップアウトはなし オプティマイザーはAdam、初期の学習率は0.001

    Google ColabでやるPyTorchとKerasの比較(DenseNetを例に) - Qiita
  • 1