ニューラルネットワークのデータの符号化と復号化

実際に取り扱うデータには,数値,カテゴリ,テキスト,画像,音声,動画等,さまざまな種類がある.ニューラルネットワークは数値配列を扱う高度な方法であるが,非数値入力をそのままで扱うことはできない. Wolfram言語は非数値データとネットワーク対応NumericArrayオブジェクトとの変換を自動的に効率よく行うためのエンコーダ・デコーダを提供する.特別な特徴抽出器や一般的な関数からカスタムのエンコーダも作成できる.

エンコーダ

NetEncoder 画像,カテゴリ等を数値配列に変換する

音声エンコーダ

"Audio" 音声を波形の大きさの列として符号化する

"AudioMelSpectrogram" 音声をメルスペクトログラムとして符号化する

"AudioMFCC" 音声をMFCC(メル周波数ケプストラム係数)ベクトルの列として符号化する

"AudioSpectrogram" 音声をスペクトログラムとして符号化する

"AudioSTFT" 音声をフーリエ(Fourier)変換の列として符号化する

テキストエンコーダ

"SubwordTokens" 文字列中のトークンを整数コードの列として符号化する

"Characters" 文字列中の文字を整数コードまたはワンホットベクトルの列として符号化する

"Tokens" 文字列中のトークンを整数コードの列として符号化する

"UTF8" 文字列をそのUTF8バイトとして符号化する

画像エンコーダ

"Image" 2D画像を階数3の配列として符号化する

"Image3D" 3Dの画像を階数4の配列として符号化する

動画エンコーダ

"VideoFrames" 動画のフレームを階数3の配列として符号化する

その他のエンコーダ

"Boolean" TrueFalse10として符号化する

"Class" クラスラベルを整数コードまたはワンホットベクトルとして符号化する

"Function" カスタム関数を使って入力を符号化する

"FeatureExtractor" FeatureExtractorFunctionを使って入力を符号化する

デコーダ

NetDecoder 数値配列を画像,確率等として解釈する

テキストデコーダ

"SubwordTokens" 確率ベクトルをサブワードトークンの文字列として復号化する

"Characters" 確率ベクトルを文字の列として復号化する

"Tokens" 確率ベクトルをトークンの文字列として復号化する

画像デコーダ

"Image" 階数3の配列を2D画像として復号化する

"Image3D" 階数4の配列を3D画像として復号化する

その他のデコーダ

"Boolean" 10TrueFalseとして復号化する

"Class" 確率配列をクラスラベルとして復号化する

"CTCBeamSearch" CTCLossLayerで訓練された確率ベクトルの列を復号化する

"Function" カスタム関数を使って復号化する