2017-06-13 25 views
-1

私は、分類タスクの最後の層としてsoftmax層を持つニューラルネットワークを持っているとします。ソフトマックス層のニューロン数は、クラス数になります。スケーラブルニューラルネットワークsoftmax分類器

しかし、新しいデータが入ったときにクラスの数を増やすと、ネットワークアーキテクチャを変更して、モデル全体を最初から再学習する必要があります。

スケーラブルな分類子を作成するための最良の方法は何でしょうか?

PS:ニューラルネットワークモデルは、2つのLSTMレイヤーに続いてsoftmaxレイヤーがあるRNN-LSTMです。私はこのアプローチがsoftmax層の前のNNアーキテクチャに依存しないと考えています。

助けていただけたら幸いです! :)

+0

「スケーラブル」という意味を明確にしてください。 tfやkerasのようなフレームワークを使用している場合は、モデル宣言を変更するだけで済みます。 –

+0

はい、問題は、クラスの数を増やすと、アーキテクチャーが変更されるため、モデルを最初から再学習する必要があるということです。だから、すべての学習された体重が失われるでしょう。 – Pranav

答えて

0

MNISTデータセットの手書き数字を0と4(0、1、2、3、4)の間でのみ分類するニューラルネットワークがあるとします。

サイズ5の1入力レイヤー、k隠れレイヤー、1出力レイヤーを指定するニューラルネットワークを構築します。次に、数字だけで構成される100万サンプルのネットワークを訓練します

ここで、ニューラルネットワークは、0〜4の数字を95%の精度で予測することを学んだと仮定します。あなたは手書き数字を6と分類できるようにしたいと思っています。しかし、ニューラルネットワークは以前に6で訓練されておらず、それをどうするか分からない - 誤分類。これは、ネットワークが、あなたのニューラルネットワークは桁5だけでなく、他の5桁の数字を予測するようにしたい場合は数字0〜4

までの範囲の入力にバイアスさであることを意味します。したがって、サイズ5の既存の出力レイヤーを破棄し、サイズ6に置き換える必要があります。これは、最終レイヤーの重みと偏りも破棄することを意味します。

今、問題は、すでに訓練された以前のレイヤーのウェイトを維持できるかどうかです。問題は「はい」と「いいえ」です。あなたがそれらを完全に破棄する必要はありませんが、あなたは桁5.

グッドニュースは、内層のためにあなたがネットワークを訓練する必要はありませんを説明するために、もう少しそれらを訓練する必要があります。これまでの100万サンプルすべてで公平性のために投げ込まれた少量の他の数字を使って、5桁のサンプルの大部分を持つ小さなデータセットで十分です。悪いニュースは、最終層のために、新しい5桁のサンプルを加えて100万のサンプルすべてを訓練しなければならないということです。

これで、内部層をわずかに再トレーニングし、外側層を完全に再トレーニングし、次に訓練されていないので、2つの層を接続するための検証と微調整が必​​要になります。

あなたはそれが問題の価値があると感じたら、あなたはできます。しかし、最初から再学習するほうが簡単です。

関連する問題