タグ

RNNに関するyukimori_726のブックマーク (22)

  • リカレントネットワークの基本的な考え方 - HELLO CYBERNETICS

    リカレントネットワーク リカレントネットワークとは LSTMやGRU 今回の記事について リカレントネットワークの都合 普通のニューラルネットワークの展開図 普通のニューラルネットワーク ちょっとだけ変わったニューラルネットワーク 入力が複数あっても良い 層を飛んだ結合があっても良い リカレントネットワークの展開図 リカレントネットワークの方程式 合成関数へ持っていけるか リカレントネットワークの展開図 最後に TensorFlow Chainer 来の在り方 リカレントネットワーク リカレントネットワークとは リカレントネットワークとは、ある層の出力がもう一度その層へ入力される「回帰結合」を持つニューラルネットワーク全般のことを指します。 このような結合を持つことで、ニューラルネットは過去の情報を保持することができるようになります。実際には回帰結合の部分には何らかの変換が準備されており

    リカレントネットワークの基本的な考え方 - HELLO CYBERNETICS
  • KerasのRNNでFizzBuzzを行う(+ Epochスケジューラの提案) - にほんごのれんしゅう

    KerasのRNNでFizzBuzzを行う(+ Epochスケジューラの提案) ディープラーニングをやるようになって半年程度経ちました ある程度ならば、文章や画像判別モデルならば、過去の自分の資産をうまく活用することと、外部からState of the Artな手法を導入することで、様々なネットワークを組むことが可能になってまいりました しかし、基礎の基礎であるはずの、Fizz Buzzをやるのを忘れていたのです やるしかありません 先行研究 Fizz Buzz in TensorFlow Fizz Buzz Keras 全結合のモデルでの、Fizz Buzzの評価のようです 提案 RNNでも、FizzBuzzは可能なのではないでしょうか 全結合層のモデルのみで、1000 ~ 5000程度のデータで学習させることが多いですが、20万件のデータセットで学習させることで、より大きな数字にも対応

    KerasのRNNでFizzBuzzを行う(+ Epochスケジューラの提案) - にほんごのれんしゅう
  • word2vec の結果を利用して RNN で文章を生成してみる(1) - 終末 A.I.

    chainer のサンプルの中には RNN 利用して文章を学習し、コンテキストに沿った単語を選択できるようになる ptb のサンプルが付属しています。 今回はこいつをちょっと改造して、単語の識別IDではなく、word2vec で生成したベクトルを用いて ptb サンプルと同じことをやってみようと思いま......したが、残念がら chainer の仕様理解ができていなかったようで、一切パラメーター更新ができておらず、4000円ほどドブに捨てる結果となってしまいました。辛すぎる! そういうわけで今日のところは、こういう風にやったらうまく学習できなかったという記録のみ記載しておきたいと思います。原因分かり次第、追記か別記事を書きます。 今回学習がうまくいかなかったモデルは以下のように実装しました。元の ptb サンプルから embedID のレイヤの関数を取り除き、Classification

    word2vec の結果を利用して RNN で文章を生成してみる(1) - 終末 A.I.
  • TensorFlow の RNN チュートリアルやってみた - Qiita

    自分用のメモ/学習を兼ねて、TensorFlow の RNN のチュートリアルを一行ずつみながらやってみる。 LSTM とはなんぞや、とか、そもそもの TensorFlow の使い方とかは、チュートリアル中にあるので割愛。 チュートリアルで用いているコードの内容の解説だけをおこなう。 コードのインデントが2で気持ち悪いとか、この関数 deprecated なんだけど💢といった苦情は Google 社へお願い致します。 対象としているチュートリアルは、 Language and Sequemce Processing の下にある、Recurrent Neural Networks というページ。 データ準備 まずはチュートリアル中で使用するデータ/コードのDLから。 コード TensorFlow 体にはチュートリアルのコードが一部しか含まれていないため、別途DLが必要。 TensorFl

    TensorFlow の RNN チュートリアルやってみた - Qiita
  • 外部メモリー付きのニューラルネット"Differentiable Neural Computing (DNC)"について解説するよ - Qiita

    外部メモリー付きのニューラルネット"Differentiable Neural Computing (DNC)"について解説するよPython機械学習DeepLearningニューラルネットワークChainer この記事について DeepMind が Nature に投稿した論文 Hybrid computing using a neural network with dynamic external memory で使用されている "Differentiable Neural Computing (DNC)" について解説します。ロジックの説明がメインですが、Python - Chainer による実装例も紹介します。 Differentiable Neural Computing (DNC)とは sequential data を Neural Net で処理したいという欲求は昔からあ

    外部メモリー付きのニューラルネット"Differentiable Neural Computing (DNC)"について解説するよ - Qiita
  • ちょっと変わったニューラルネットワーク Reservoir Computing - Qiita

    あまり有名ではありませんが変わった性質のニューラルネットワークとして Reservoir Computing があります。 Recurrent Neural Network のひとつですが、中間層の重みを固定してしまって、出力層の部分だけ学習するというアルゴリズムです。 Recurrent Neural Network とは まずは Recurrent Neural Network (RNN) について簡単に触れておきましょう。 時系列学習 時系列データを扱う方法は多種多様ですが、ニューラルネットワークにおいてはRNNを使います。 時系列情報をネットワーク内で表現するために途中にループがある構造のネットワークを指し、少し前だと Elaman Network とか Jordan Network とかが有名でした。 最近はディープラーニングの文脈で度々登場する Long-Short Term

    ちょっと変わったニューラルネットワーク Reservoir Computing - Qiita
  • RNNで人間行動認識 - Qiita

    Chainer Advent Calendar 2016の21日目の記事です. 概要 去年の秋から今年の春にかけて精力的にやっていた加速度信号からの人間行動認識のなかで、Chainerを用いてRNN(LSTM)を構築したのでここで晒します. といっても基的にexamplesに収録されてる"ptb"をベースにちょこっと改造を施しただけでプログラミング的には大したことやってないです これやり始めた頃はPythonでプログラミングするのも初心者丸出し的存在で、書いたソースコードもかなり汚く読みづらかったのでリファインしていくらか見れる状態に直しました.(それでも汚い…) また、ある程度出来上がってまわしてたときのChainerバージョンはまだ1.6とかでしたので、コードの中には古い記法がかなり混じっているしれません!!ご注意ください (記事にするにあたって一応バージョン1.18.0で動くか確認

    RNNで人間行動認識 - Qiita
  • RNNにおけるDropoutの適用について - Qiita

    はじめに ディープラーニングにおけるDropoutは単純かつ強力な正則化手法として広く使われていますが、RNNの時間方向に適用するとノイズが蓄積してうまく学習できないため、入出力層にのみ適用するのが常識とされてきました[Zaremba 2014]1。しかし最近の研究でDropoutをベイズ的に解釈することでRNNの時間方向にもDropoutを適用でき、言語モデルのタスクで単一モデルとして最高精度を達成することが示されました[Gal 2016]2 今回は変分Dropoutと呼ばれるこのモデルをTensorFlowで実装したので紹介したいと思います。 Dropoutのベイズ的解釈とRNNへの適用 ニューラルネットワークのパラメータの事後分布を「学習する通常のパラメータ」と「学習しないパラメータ=0」の2つを中心とする混合ガウス分布で近似することによりDropoutと同様のアルゴリズムが得られる

    RNNにおけるDropoutの適用について - Qiita
  • LSTMを超える期待の新星、QRNN - Qiita

    RNN「これってもしかして」 CNN「わたしたちのモデルが・・・」 「「入れ替わってる~~~!?」」 というわけでQRNN、QUASI-RECURRENT NEURAL NETWORKSとは、RNNの機構をCNNで「疑似的(QUASI)に」実装するというモデルです。これにより、既存のRNN(というかLSTM)が抱えていたいくつかの問題の解決を試みています。 元論文は以下となります。 QUASI-RECURRENT NEURAL NETWORKS 作者によるブログ 作者の方のブログにChainerのサンプルコードがあったので、それを元にTensorFlowで実装してみました。早く動かしたい!という方はこちらを見てみてください。 icoxfog417/tensorflow_qrnn (Starを頂ければ励みになります m(_ _)m) 記事では、この研究のモチベーションとそのアプローチについ

    LSTMを超える期待の新星、QRNN - Qiita
  • 自然言語系のデータでLSTM理解しようとすると難しいので、MNISTデータでLSTMの基礎を解説 - Qiita

    師走に調子乗ってTensorflow Advent calendar 2016登録して完全にヒーヒー言いながら今回の内容を書きました。 おそらく後から読みやすいように追記や更新もすると思います。8日目です。どうも。 この記事はTensorflowのチュートリアルを読んでなんとなくの機械学習的な理解がある方達がおそらく対象です。 それらに関連した解説も一応書いてます。 ・ビギナーの解説 : 特にプログラマーでもデータサイエンティストでもないけど、Tensorflowを1ヶ月触ったので超分かりやすく解説 ・エキスパートの解説 : Tensorflowを2ヶ月触ったので"手書きひらがな"の識別95.04%で畳み込みニューラルネットワークをわかりやすく解説 機械学習がどんどん盛り上がってますね。 みなさん楽しそう。 そんなわけで今更word2vecなんてやっても...感もあるので、すっ飛ばしてRe

    自然言語系のデータでLSTM理解しようとすると難しいので、MNISTデータでLSTMの基礎を解説 - Qiita
  • 単純なRNNを使ってズンドコキヨシを学習する - Qiita

    import numpy as np import chainer from chainer import cuda, Function, gradient_check, Variable, optimizers, serializers, utils from chainer import Link, Chain, ChainList import chainer.functions as F import chainer.links as L class RNN(chainer.Chain): def __init__(self): super(RNN, self).__init__( w1 = L.Linear(2, 10), h1 = L.Linear(10, 10), o = L.Linear(10, 2) ) def reset_state(self): self.last_z

    単純なRNNを使ってズンドコキヨシを学習する - Qiita
  • DMM API、char-rnn(リカレントニューラルネットワーク)でAV作品の紹介文を自動生成 - not good but great

  • メモリを操作するRNNでソートアルゴリズム(可変長&順序フラグあり)を機械学習できたよっ! - Qiita

    微分可能な神経機械? Google DeepMindがNatureに投稿した論文「Hybrid computing using a neural network with dynamic external memory」が、なんだかヤバそうな香りがします。 公式の紹介記事「Differentiable neural computers」では、プラトンの記憶論から話が始まりますし、論文では脳の記憶を司る海馬に喩えていたりして、なかなか格調高いです。単なるニューラルネットワークの性能改善に留まらず、哲学や神経科学の観点からも理想の人工知能に一歩近づくことができたよ、これは新しいコンピュータの在り方の発明なのではないか、という気概が感じられます。 仕組みとしては流行りのAttentionという概念が入っていて、メモリを表す行列と、それを選択的に操作しながらベクトルを入出力するコントローラがありま

    メモリを操作するRNNでソートアルゴリズム(可変長&順序フラグあり)を機械学習できたよっ! - Qiita
  • pythonでRNN実装 - Qiita

    はじめに pythonでRNNを実装しました. 教科書として『深層学習』を使いました. 記事の構成 はじめに RNN 順伝播計算 逆伝播計算 重みの更新 pythonでの実装 結果 ロス 系列データの予測 sin波の予測 おわりに RNNとは,系列データを扱う再帰型のニューラルネットワークです. 系列データの例として,音声や言語,動画像などが挙げられます. このような系列データは,サンプルごとに系列の長さが異なり,系列内の要素の順番に意味があることが特徴です. RNNは,系列データの特徴をうまく扱うことを可能にします. 順伝播計算 まずは,文字の定義をします. 入力層,中間層,出力層の各ユニットのインデックスをそれぞれ $i, j, k$ で表します. また,時刻 $t$ における入力,中間層の入出力,出力層の入出力,教師を以下のように表します. 入力: $\boldsymbol x^t

    pythonでRNN実装 - Qiita
  • Attention and Augmented Recurrent Neural Networks

    Recurrent neural networks are one of the staples of deep learning, allowing neural networks to work with sequences of data like text, audio and video. They can be used to boil a sequence down into a high-level understanding, to annotate sequences, and even to generate new sequences from scratch! x0 y0 x1 y1 x2 y2 x3 y3 One cell... can be used over... and over... and over... x4 y4 again. The basic

    Attention and Augmented Recurrent Neural Networks
  • リカレントニューラルネットワークの理不尽な効力(翻訳) - Qiita

    Andrej Karpathy 氏のブログ記事 http://karpathy.github.io/2015/05/21/rnn-effectiveness/ の翻訳です。 翻訳の誤りなどあればご指摘お待ちしております。 リカレントニューラルネットワークには何か魔法のようなところがあります。画像説明(Image Captioning)のために初めてリカレントニューラルネットワークの訓練をした時のことを、私はまだ覚えています。わずか数十分間の訓練で、最初のベイビーモデル(適当に選んだハイパーパラメータを持つ)は、意味を成すのかどうかという画像について、すばらしい説明を生み出し始めました。モデルの単純さの割に結果の品質は、時に、それまでの予想を打ち砕きますが、これがその時でした。当時この結果がとても衝撃的だったのは、一般的に RNN は訓練することが難しいと思われていたためでした(より多くの経

    リカレントニューラルネットワークの理不尽な効力(翻訳) - Qiita
  • 新たなRNNと自然言語処理

    2016/6/22にNLP-DLで話した際のスライドを一部編集したものです。 English ver. http://www.slideshare.net/hytae/recent-progress-in-rnn-and-nlp-63762080Read less

    新たなRNNと自然言語処理
  • 再帰型ニューラルネットワーク: RNN入門 - Qiita

    再帰型ニューラルネットワーク(RNN)は自然言語処理の分野で高い成果をあげ、現在最も注目されているアルゴリズムの一つです。しかしながら、その人気が先走りして実際にRNNがどのように動くのか、構築するのかを解説する書籍は限られているように思います。この投稿はその部分にフォーカスを当てて友人のDenny(WildMLブログの著者)と一緒に書きました。 さてRNNベースの言語モデルを解説したいと思います。言語モデルの用途は2つあります。1つ目は文章が実際にどのくらいの確率で現れるのかのスコアリングをすること。このスコアは文法的に、セマンティクス的に正しいかどうかの判断基準となります。このようなモデルは例えば機械翻訳などに使われています。次に2つ目ですが、言語モデルは新たなテキストを生成することができる点 (ちなみに個人的にこちらの方がよりCoolな用途だと思っています)。また、英語ですがAndr

    再帰型ニューラルネットワーク: RNN入門 - Qiita
  • リカレントニューラルネットワークによる時系列の生成(人工知能が美術や音楽を作るMagenta 翻訳①) - Qiita

    はじめに この記事は、GoogleのMagentaプロジェクトのドキュメント "Generating Sequences With Recurrent Neural Networks"(David Ha)の翻訳です。 このドキュメントは、Alex Graves氏による同名の論文のレビュー記事であり、 Apache License, Version 2.0で配布されている成果物です。 Google Brainはディープラーニングにより、美術や音楽を生成するプロジェクトMagentaを立ち上げました。Magentaの目的の1つは、プロジェクトの研究を紹介することでもあり、いくつかの論文のレビュー記事を公開しています。 リカレントニューラルネットワーク(RNN)は時系列データと相性の良いニューラルネットワークで、GoogleプロジェクトMagentaでも、作曲をするモデルとして使われています。

    リカレントニューラルネットワークによる時系列の生成(人工知能が美術や音楽を作るMagenta 翻訳①) - Qiita
  • RNNにsin波を学習させて予測してみた:ハイパーパラメータ調整編 - Qiita

    2. ソースコード、ノートブック 学習・予測に使用したソースコード、学習データを生成したノートブック、結果のチャート化に使用したノートブックなどは、GitHubで公開しています。 具体的なソースコード、値などはそちらを参照ください。 3. ハイパーパラメータの調整 3.1. num_of_hidden_nodes: 隠れ層のノード数 隠れ層のノード数を1〜4と変化させた場合の予測結果、損失関数のチャートを以下に示します。 隠れ層のノード数が1の場合、まったく予測できていない事がわかります。また、隠れ層のノード数が多ければ、必ずしもよい結果を得られるわけでもなさそうです。 損失関数のチャートを見てみると、隠れ層のノード数が多いほど、最終的な損失は少なくなっています。 No 隠れ層のノード数 学習・予測時間

    RNNにsin波を学習させて予測してみた:ハイパーパラメータ調整編 - Qiita