ニューラルネットワークは画像内容の認識に使用できます。画像をある決まったカテゴリーに分類する際、ほとんどの場合は、大きなデータセットで訓練された”訓練済み”モデルを使用することになるでしょう。しかし、訓練済みモデルの一部である特徴を使用することもできます。特徴を使用すると、新規のカスタムタスクのためにモデルを”再訓練”したり”再利用”することができます。これは転移学習と呼ばれます。
このクラスを使用すると、訓練済みモデルを通して画像の特徴を抽出したり、そのモデルを新しいデータで再訓練することができます。
目次
シンタックス
ml5.featureExtractor(model, ?callback)
ml5.featureExtractor(model, ?options, ?callback)
パラメータ
model – 学習済みの特徴を抽出する対象のモデル。大文字小文字の区別あり。
callback – オプション。モデルがロードされたときに実行する関数。callbackを指定しない場合には、モデルがロードされたときに解決されるPromiseが返される。
options – オプション。カスタムオプションを含んだオブジェクト。MobileNetモデルの場合、再設定できるカスタムオプションには以下のものがある。
{
version: 1,
alpha: 1.0,
topk: 3,
learningRate: 0.0001,
hiddenUnits: 100,
epochs: 20,
numClasses: 2,
batchSize: 0.4,
}
MobileNetの特徴
以下は、特徴抽出の対象としてMoblieNetを選択したときのプロパティとメソッドです。
mobileNetについては「8-1 mobilenet」を参考にしてください。
ml5.featureExtractor(‘MobileNet’)
プロパティ
.modelLoaded – モデルがロードされたかどうかを表すブール値。
.hasAnyTrainedClass – 新しいデータがモデルに追加されたかどうかを表すブール値。
.usageType ^ 抽出器の用法を表す文字列。’regressor’と’classifier’がある。
.isPredicting – モデルが推測中かどうかを調べるブール値。
メソッド
.classification(?video, ?callback)
– MobileNetの特徴を分類器として使用する。
video – オプション。HTMLのvideo要素かp5.jsのvideo要素。
callback – オプション。ビデオが準備できたときに呼び出される関数。callbackを指定しないときには、video要素がロードされたときに解決されるPromiseを返す。
.regression(?video, ?callback)
– MobileNetの特徴をリグレッサー(回帰)として使用する。
video – オプション。HTMLのvideo要素かp5.jsのvideo要素。
callback – オプション。ビデオが準備できたときに呼び出される関数。callbackを指定しないときには、video要素がロードされたときに解決されるPromiseを返す。
.addImage(label, ?callback)
– 新しい画像要素を追加する。
.addImage(input, label, ?callback)
– 新しい画像要素を追加する。
input – オプション。HTMLのimage要素かvideo要素。またはp5.jsのimage要素かvideo要素。inputを指定しないと、.classification()や.regression()で使用するvideo要素が使用される。
label – 新しい画像と関連付けられるラベル。分類器(classifier)を使うときには文字列か数値が指定できる。回帰(regressor)の場合には数値である必要がある。
callback – オプション。新しい画像がモデルに追加されたときに呼び出される関数。callbackを指定しないときには、画像が追加されたときに解決されるPromiseを返す。
.train(callback)
– 開始点としてモデルの元の特徴を用いて、与えられた画像とラベルでモデルを再訓練する。
callback – 訓練の進捗に追随して呼び出される関数。
.classify(?callback)
.classify(input, ?callback)
– 再訓練された新しいモデルをベースに画像を分類する。.classification()を併用する必要がある。
input – オプション。HTMLのimage要素かvideo要素。またはp5.jsのimage要素かvideo要素。inputを指定しないと、分類器の作成で与えたvideo要素が使用される。
callback – オプション。inputが分類されたときに呼び出される関数。callbackを指定しないときには、モデルが画像を分類したときに解決されるPromiseを返す。
.predict(?callback)
.predict(input, ?callback)
– 再訓練された新しいモデルをベースに連続する値を推測する。.regression()を併用する必要がある。
input – オプション。HTMLのimage要素かvideo要素。またはp5.jsのimage要素かvideo要素。inputを指定しないと、回帰の作成で与えたvideo要素が使用される。
callback – オプション。inputが予測されたときに呼び出される関数。callbackを指定しないときには、モデルが画像を予測したときに解決されるPromiseを返す。