MATLAB Answers

Tamu
0

trainNetwo​rk(X,Y,lay​ers,option​s) の応答Yに、categorical ベクトルではなく数値​応答を入力することは​可能でしょうか?

Asked by Tamu
on 3 Jun 2019
Latest activity Commented on by Tamu
on 5 Jun 2019
複数チャネルを持つ2次元データを入力としたCNNを作っているのですが、
入力:X = 2次元データの高さ×2次元データの幅×チャネル数×データ数
応答:Y = 応答数×1×データ数
上記のもとで、trainNetwork(X,Y,layers,options)を実行したところ
「無効な学習データです。Y はカテゴリカル応答のベクトルでなければなりません。」
とエラーが発生しました。
この場合、Yに数値応答を入力するのは可能でしょうか?
ご教示ください。
よろしくお願いいたします。

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Kenta Itakura on 4 Jun 2019
 Accepted Answer

数値応答ということは、「Aだ、Bだ」というカテゴリー分類ではなく、「3.1だ、7だ」といった、回帰をするという認識でよいでしょうか?
その場合は、ネットワークの最後にregression layerを付加すればよいと思います。
また、手書き文字認識といった、数字というカテゴリーを分類したい際は、Y=categorical(Y)として、Yの形式をcategoricalに変更すればよいと思います。

  3 Comments

回答ありがとうございます!
説明不足で申し訳ありません。
数字でカテゴリー分類したいのですが、
例えば1~5の数字を認識するネットワークで「3」のイメージを入力する際、
応答Yにはベクトル[0,0,1,0,0]をcategoricalで変換したベクトルを代入すればよいということでしょうか?
お手数おかけしますが、よろしくお願いいたします。
いえ、そのような形式にせず、単にカテゴリカル型の「3」にすればよいです。
Y=[1 2 3 2 3 3 2 1]';
Ylabel=categorical(Y);
例えば、Yが上のようであれば、2行目のような操作をすればよいと思います。
回答ありがとうございます!
一度教えていただいたカテゴリカル型で試してみます。

Sign in to comment.