質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

2回答

216閲覧

Word2Vecのニューラルネットワークの出力層について

Terratale

総合スコア21

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2018/09/12 17:10

私は現在Word2Vecの仕組みについて勉強しています。
勉強の結果、Word2Vecとは、入力層にはone-hotベクトルを入れ「ある単語を与えた時にその周辺語を予測する」というタスクを解かせる過程で、入力層から隠れ層への重みベクトルという形で間接的に単語ベクトルを得るものであり、出力層には用がない。ということは理解しました。
しかし、結局出力層にはどんなものが入っているのかがわかりません。
出力層について調べていると、「単語の数-1個のユニットがある」「単語ベクトル同士の内積」「最終的にソフトマックス関数をかませて確率にする」などの説明を目にし、各々の意味はなんとなく分かるのですが、結局のところ、どのような値がどのような形で入っているのか、というのがイマイチ掴みきれません。

私の頭の中でのニューラルネットワークを図にすると以下のようになります。(数字は適当です)

出力層 ?                        ? ? ? 入力層 隠れ層 0 2 ? 1 5 ? 0 3 ? 0 ? ? ? ? ?

質問の中でも何か誤ったことを言っている部分があるかもしれませんが、その場合はそこについても指摘した上で、この?の部分にはどんなものが入っているのかご教示よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問に「ある単語を与えた時にその周辺語を予測する」とある通り、ニューラルネットの出力は周辺語の出現する確率です。
ただし、入力が単一の単語というより複数の単語のセットと思ったほうがいいと思います。例えば、「私」「?」「食べる」から?部分を予測する際、「私」だけより「私」と「食べる」から予測したほうが精度があがるという理屈です。word2vecで学習する時、パラメーターにwindowがあったと記憶しています。これは前後のどこまでを考慮するかというもののはずなので、多分あっていると思います。

ここからは完全な想像です。
単語の出現確率の計算方法にはRNNやLSTMなどの技術を使ったものがあります。いずれもそれほど新しいものではないはずなので、word2vecにも使われているとみます。

まぁ、どちらも出力層の話ではないので質問には関係が薄いです。一応、誤った部分があれば、ということなのでコメントしました

投稿2018/09/13 12:07

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/09/13 12:51

文脈→単語を予想するのはCBoWですね RNN系の技術はword2vecには反映されていないはずです。新し目の分散表現手法で取り入れているものはあるかもしれません
Terratale

2018/09/15 14:59

回答ありがとうございます! RNNもLSTMも知らなかったので勉強になりました。
guest

0

私も内部で実際にどういう処理になっているのかについてはそこまで詳しくないのですが。

直感的には、単語の生起確率です。

質問文から「単語」とその周辺語(前後1単語)を抽出すると、

ある 単語 を  に 単語 ベクトル  「 単語 の  「 単語 ベクトル

です。次のようなリストでボキャブラリを表現してみます。

['「', 'ある', 'に', 'の', 'を', 'ベクトル', '単語']

「単語」前後の単語の生起確率は次のようなベクトルで表現できます。

前の単語の生起確率=[0.5, 0.25, 0.25, 0, 0, 0, 0] 後の単語の生起確率=[0, 0, 0, 0.25, 0.25, 0.5, 0]

これはあくまでも直感的な説明なので、必要なら英語の文献にあたるかソースを読んで理解することが望ましいと思います。

投稿2018/09/13 06:23

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Terratale

2018/09/15 14:57

そうですね。頑張ってソース見てみようと思います。 回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問