2016年12月06日

1次元畳み込みNeural Networkの使い方と実装

(主に自然言語処理に用いられる)one dimensional Convolutional Neural Network はどういう構成なんでしょうか
自然言語処理における畳み込みニューラルネットワークを理解する
だいたいこの通りなんですが
実装の方は全然無いので、それのやり方は?





A Convolutional Neural Network for Modelling Sentences
Nal Kalchbrenner, Edward Grefenstette, Phil Blunsom University of Oxford
ACL 2014
We describe a convolutional architecture dubbed the Dynamic Convolutional Neural Network (DCNN) that we adopt for the semantic modelling of sentences.
ネットワークでは、リニアシーケンスに対するグローバルなPooling操作であるDynamic k-Max Poolingが使用される。
ネットワークは、変化する長さの入力文を処理し、明示的に短距離および長距離の関係を取り込むことができる文章上に特徴グラフを誘導する。
ネットワークは解析木に依存せず、どの言語にも簡単に適用できます。

この論文では、
・2クラス感情解析(予測)
・多クラス感情解析(予測)
・質問分類
・Twitterの感情予測
で評価した


Code available at www.nal.co と書いてありますが
http://www.nal.ai/ こちらに遷移します。
しかしソースコードはここにもありません。
こちらにあります。
http://phd.nal.co/DCNN
DCNN.zip のファイルは拡張子が.mで、言語は Objective-C ?



問題設定として、Convolutional Neural NetworksのNLPは、ほとんどが多クラス分類です。
だから、別にRNNでも良いのかもしれないですね。



続きを読む

2016年12月04日

Azure Machine Learningで画像認識の学習

Azure Machine Learningで画像の学習はFace APIしか出来ないと思います。

しかし使い方で分からない事が非常に多かったです。




まずsubscription-keyをどこから得るのかが分かりません。


subscription-keyはサブスクリプション IDなどではありません。

Microsoft Cognitive Services - My free subscriptions
こちらからサービスにチェック入れてsubscribe ボタンを押します。
すでに使用しているなら、このURLに表示されています。
learning1

showをクリックすれば表示されます。
Key 1でもKey 2でもどちらでも良いらしいのですか...?



subscription-keyが間違っていたら、大体
401 Access Denied

となると思います。




そしてAzure Machine Learningは学習するだけでも非常に手間がかかります。
あまり効率良くないです。



まずPerson Groupの作成
Person Group - Create a Person Group
Open API Testing consoleをクリックすればブラウザからでも実行できます。

personGroupId に入れる値は数字でも文字列でも大丈夫です。


何故か、最初に実行したときは、401 Access Denied だったんですが、
何故か、何度か実行すると 成功しました。
Content-Type: application/json
Host: api.projectoxford.ai
Ocp-Apim-Subscription-Key: ????????????????????????????????
{
"name":"group1",
"userData":"user-provided data attached to the person group"
.................
のようになりました。
続きを読む

2016年11月28日

文字単位seq2seqの処理方式

最近は係り受け解析どころか形態素解析もしない自然言語処理も増えてきてる訳ですが
それはどういう方式なんでしょうか


Wikireading: A novel large-scale language understanding task over wikipedia.
Daniel Hewlett, Alexandre Lacoste, Llion Jones, Illia Polosukhin,Andrew Fandrianto, Jay Han, Matthew Kelcey , David Berthelot     Google Research
arXiv preprint arXiv:1608.03542 (2016).
Figure 2: Character seq2seq model. Blocks with the same color share parameters.
character_seq2seq1Figure 2: Character seq2seq model. Blocks with the same color share parameters.

This model, shown in Figure 2, operates only on sequences of mixed-case characters.
The property encoder RNN transforms the property, as a character sequence, into a fixed-length vector.
This property encoding becomes the initial hidden state for the second layer of a two-layer document encoder RNN,
which reads the document, again, character by character.
Finally, the answer decoder RNN uses the final state of the previous RNN to decode the character sequence for the answer.

図2に示すこのモデルは、大文字と小文字の混在した文字列に対してのみ動作します。
プロパティエンコーダRNNは、文字シーケンスとしてプロパティを固定長ベクトルに変換します。
この特性符号化は、2層文書エンコーダRNNの第2の層の最初の隠れ状態となり、その文書を再び文字単位で読み取る。
最後に、answer デコーダRNNは、前のRNNの最終状態を使用して、answer 文字シーケンスを解読する。

..............

しかし、文字レベルでは、すべてのsequenceの長さが大幅に増大する
これにより、RNNにさらに多くの順次ステップが追加され、勾配をさらに伝搬させる必要があり、デコード中にエラーが発生する可能性が高くなる。
Semi-supervised Sequence Learning(2015)は、この問題を分類コンテキストで扱うために、言語モデル(LM)の重みを使用してLSTM分類器を初期化すると精度が向上することを示した。
二相訓練プロセスを用いて文字seq2seqモデルに適用する。

第1段階では、WIKIREADINGトレーニングセットの入力文字列に文字レベルのLMを訓練する。
第2段階では、このlanguage modelの重みを使用して、エンコーダとデコーダの最初のレイヤーを初期化する。
初期化後、基本文字seq2seqモデルのようにトレーニングを進行する。




4.1 Training Details
TensorFlow で
400文字を使用するCharacter seq2seqを使う
すべての文書は最初の300語に切り捨てられます。
embedding matrix で300次元

Character seq2seq
Emb.Dims 30
Doc.Length 400chars
Property Length 20chars
Doc.Vocab.Size 76chars  

Property Lengthとは、embedded using the document embedding matrix?
Doc.Vocab.Size 入力のVocabularyサイズという事?

大文字小文字のアルファベットだと 26*2=52で、 後の24字は何でしょうか?




Semi-supervised Sequence Learningで言っている言語モデル ( language model)とは?
続きを読む

adsense
Categories
サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村

amazon
Profile
Archives
blogchart
QRコード
QRコード
Recent Comments
o