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

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

ただいまの
回答率

90.35%

  • Python

    9133questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • 機械学習

    759questions

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

  • 自然言語処理

    137questions

    自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

gensimでのdoc2vec

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 375

kohekoh

score 122

gensimを使ってdoc2vecをしています

そこで学習をさせる際に次元数を決めることができると思うのですが
この次元数は多ければ多いほどいいという考えであってますか?
ちなみに、学習データが多い場合は次元数も多くしていく必要があるのですかね?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

大きすぎてもあまり良いことはありません。

  • 後ろの処理が大変になる
    次元が低いほうが何かと楽、という考え方があります

  • 学習させるのが大変
    中間層が大きい方がモデルの表現力は増えるのですが、それだけ落ち着くまでが大変になります(たくさんデータ突っ込んでたくさんループ回さないとうまく収束しない)。

  • スパースにしすぎると「意味」を学習できなくなる
    直感的な説明は難しいのですが、そんな傾向です。
    学校の試験で、ノート1冊分のカンペの持ち込みを許可すると、過去問の答えを写してくるだけなので生徒の理解は深まらない。小さい紙ペラ一枚だけにすると、頑張ってまとめるので理解が深まる・・・という感じでしょうか。
    あえて狭い領域に押し込んでやることで、限られた次元数で効率よく表現できるようなモデルにします。

だからって小さければ良いというものでもなく、表現するには適当な次元数が必要です。よく言われている200次元とか。


NNは割とロバストなので、200次元を300次元に変えたってどうということはないかもしれませんし、もしかしたら1000次元くらいまでは問題なくいけるかもしれません。
性能の良し悪しもけっきょくタスク依存な話なので、やってみて実測するしか確認する手段はありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/23 20:19

    なるほどですね…
    ちなみになのですが、評価のとこで
    https://qiita.com/akira_/items/f9bb46cad6834da32367
    のやつを利用しているのですが
    この評価ってどのくらい信用できると思いますか?

    キャンセル

  • 2018/05/24 10:00

    微妙。タスク依存な話ですし・・・>この評価ってどのくらい信用できると思いますか?
    評価方法としてはとりあえずNNの収束を見たいところですが、gensimだとあるようなないような微妙な感じだったり・・・
    https://github.com/RaRe-Technologies/gensim/issues/999
    実際的には、とにかく使うタスクで性能が出るようになるまでepochを回すことになるのかと思います

    キャンセル

  • 2018/05/24 10:52

    性能がでてるかどうかの判断がよくわからないんですよね…
    文章の類似度を見ているのですが
    直感的な判断が主になってしまって、定量的には評価しにくいですし…
    epochは回せば回すほどいいんですかね?
    ちなみに、「NNの収束を見たいところですが、gensimだとあるような…」というのはどういうことですか?評価をする関数がないということですかね?

    キャンセル

  • 2018/05/24 11:12 編集

    基本的にNNは妖しい技術なので、評価指標が定まらないような定性的な分析には用いない、ということも大切だと思います。それか、ちゃんと定量的に評価する方法を考える。
    >ちなみに、「NNの収束を見たいところですが、gensimだとあるような…」というのはどういうことですか?評価をする関数がないということですかね?
    それは上記URLを見てください。要約すると、昔からずっと「あった方が便利」「技術的な問題があって実装するの面倒くさいし~」という話が続いていて、word2vecの方のモデルでは現在使えるようになっていますが(compute_lossオプションで)doc2vecはまだ、という状況のようです。原理的にはNNなので、training lossがあるんだけど・・・

    キャンセル

  • 2018/05/24 11:24

    なるほどですね…
    traininglossがあるんだけど、実装がめんどくさいとかってことですかね?

    キャンセル

  • 2018/05/24 11:26

    そんなところです。あとオーバーヘッドもあると困るね、みたいな話があったりとか

    キャンセル

  • 2018/05/24 13:19

    なるほどです
    ありがとうございます

    キャンセル

同じタグがついた質問を見る

  • Python

    9133questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • 機械学習

    759questions

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

  • 自然言語処理

    137questions

    自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。