こんにちは、エンジニアの中村です。 今回は、ニューラルネットワークの蒸留に関する連載記事の第3回目の記事になります。 第1回では、蒸留という手法の端緒であるモデル圧縮から始めて、蒸留の基本的な概念を説明し、その後の蒸留の発展を含めて、蒸留という分野の概観を紹介しました。第2回では、蒸留によるモデル圧縮について、分類タスクと回帰タスクそれぞれについて個別の研究を取り上げて、それらの詳細を紹介しました。特に、分類タスクでは蒸留の基本的な効果と蒸留によって得られる正則化効果について、また,回帰タスクでは蒸留を応用するために必要な工夫を紹介しました。 第3回目にあたる今回は、第1回で概要に触れた蒸留の発展について、個別の研究を取り上げて、詳細を紹介していきます。モデル圧縮のための手法として考案された蒸留ですが、「教師モデルの出力を生徒モデルの学習に使用する」という蒸留の基本コンセプトは、モデル圧縮
ここ数年のDeep Learningの発展は目覚ましく、急速に実用化が進んでいます。タスクによっては人間に匹敵する精度に達しているものもあり、システムの一部品としてデプロイする場面も増えてくると思います。そこで問題になるのが計算機資源の制約です。学習時には大量の学習データを用意し、GPUなどの計算資源で数時間や数日かかるような学習をしますが、推論時には限られたメモリや計算資源のもとで動作させる必要があります。リアルタイムに大量の入力データを捌く必要があったり、スマートフォンやエッジデバイスなどで動作させる場合には、この制約はさらに強くなります。 深くて大きいモデルの方が精度が出るが、実用を考えると軽量なモデルにする必要がある。こういった場面で最近よく使われる手法として、 知識の蒸留 (Knowledge Distillation) と呼ばれる方法があります。これは、(典型的には)大きくて複
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く