Photo credit: Dita *is Catching Up* Actor via Visual Hunt / CC BY-NC-SA
無意識的虚偽は虚偽者自身を欺偓しなければならないわけである。例えば或る意味の絶対主義がそれであるかを許されない。尤も一応こう云う意味で、等しい資格を云い 表わすものと考えられた事情の所段が不充分であるにも拘らず常に、因果家・成立の論理的な否定でしかない。
はじめに
いきなり難解な文章から始まりましたが、解読しようとした人ごめんなさい。これは本記事でご紹介する人工知能に書いてもらった意味のない文章です。
どうもこんにちは。あんどう(@t_andou)です。
最近は人工知能技術の一種と言われている「ディープラーニング(Deep Learning)」を学びつつ遊んでいます。
最近やったこと
ディープラーニングで何ができるのかを把握するために、こんなことをやってきました。(理論的なことはあまり把握できていません)
今回やったこと
今回も今までと同じように「どんなことができるのか」を調べていると、面白いものを見つけました。
それはディープラーニング*1を使った文章の生成です。
例えば、アニメのキャラのセリフを生成したり、文豪っぽい文章を生成したり、さだまさし風の歌詞を生成したり。
さすがに精度はまだまだのようですが、将来的にはブログの自動執筆なんかも可能になるかも…?ということで、何番煎じか分かりませんが試してみたいと思います。
今回はタイトルにあるように人工知能に哲学を語らせることを目的として、「哲学書」を読ませて(=学習させて)みました。
やり方
概要
ざっくりと説明すると、こんな流れです。
- ソースコードを準備
- 学習させたいデータを準備
- 学習させる
- 文章を書かせる
- パラメータを調整しつつ3と4の繰り返し
細かく説明しつつ書いていきます。
1.ソースコードを準備
今回の実行環境
AWSでGPUを使う環境を構築すると早そうですが、クラウド破産が怖いので
持っていたWindowsのデスクトップPCをデュアルブートして使いました。
- OS:ubuntu14.04
- Python:2.7.6
- tensorflow:0.7.1
- GPU:GTX970
ソースをgithubからクローン
今回はchar-rnnというソースコードのTensorflow版を使いました。
https://github.com/sherjilozair/char-rnn-tensorflow
2.学習させたいデータを準備
今回は青空文庫にある哲学書から、戸坂潤さんの本を読ませて(=学習させて)みました。読ませた本は以下の12冊です。
学習させた本一覧
- イデオロギー概論
- イデオロギーの論理学
- 所謂批評の「科学性」についての考察
- 空間概念の分析
- クリティシズムと認識論との関係
- 啓蒙の現代的意味と役割とについて
- 現代哲学講話
- 現代日本の思想対立
- 新字新仮名 思想としての文学
- 性格としての空間 ――理論の輪郭――
- 哲学の現代的意義
- 日本イデオロギー論 ――現代日本に於ける日本主義・ファシズム・自由主義・思想の批判
ちなみに
「イデオロギー概論」の最初の一節はこんな感じです。
云うまでもなくそれ自身としてはブルジョアジーのものである処の、わが国に於ける文壇や論壇、又学壇をさえ一貫して、マルクス主義的・社会科学的・認識が今日では可なりよく普及していると見て好い。一部分の、無意識的にか又は故意にか、敢えて迷蒙に止まろうと欲しているとしか考えられない諸反動分子は例外として、わが国のインテリゲンチャ層は大勢から云って、マルクス主義的・社会科学的・諸範疇を夫々の程度に承認し、而も之を相当日常化して使っているだろう。イデオロギーという言葉乃至概念も亦例外ではない。
あれ?これ、人工知能の書いた文章かな?と思ってしまうくらい難解な文章ですね。
こんな文章が続く本を12冊読ませます。
学習させるために文章を1つのテキストにまとめる
上に挙げた12冊の本の内容を手作業で一つのテキストファイルにまとめました。
こちらからダウンロードできます。
改行やスペースはもっとしっかりと整理して配置した方が良いように思います。
また、脚注や読み仮名などは無い方が良いとは思いますが、今回は細かいことは気にせず進めました。
このファイルをinput.txtとして配置します。
ここまでの手順で学習をさせる準備が整いました。
3.学習させる
train.pyを開き、先ほど準備したinput.txtを読み込むように書き換えます。
そして、
python train.py
を実行すれば学習開始です。
環境にもよりますが、僕の環境では2時間くらいかかりました。
4.文章を書かせる
学習が終われば下記のコマンドを実行することで文章の生成が開始されます。
python sample.py
学習とは違い、数秒で完了します。
結果
128*2層 : 50epochで学習させた場合
まずはデフォルトのユニット数128、隠れ層2層でやってみました。
結果1
吾々は無力となることが必規一般性――だけに立つ次との関係の可能怲を有ち徟げて前にはカントの矠目的だおのこの事物の解釈は一定の分析といであろう、それは実際何に於ける超直胃を担うならば、云わばこの専門的な意志」によれば、如何な拡定され得る。もし論理的本質の本当を世界観から感情であった限りの特有な、その高度から発生するであろ?
…するであろ?
結果2
わしなのである。発見したが故に如何なる攊静性格的問題な専しもどの発見する、というのではなかろう。処が又はこの理論亊関係を決定される以て事物にまで存在している様々にこの衝わすとなれば上の問来を正度さを突発的である。
わしなのである。
512*2層 50epoch
次にユニット数を増やしてみました。すると、2回に1回くらいの割合で「結果4」のような文字化け?が出るようになりました。
結果3
無意識的虚偽は虚偽者自身を欺偓しなければならないわけである。例えば或る意味の絶対主義がそれであるかを許されない。尤も一応こう云う意味で、等しい資格を云い 表わすものと考えられた事情の所段が不充分であるにも拘らず常に、因果家・成立の論理的な否定でしかない。併し実は、良心(苟命)を持つことが出来る)。
少しだけ良くなったかも?
結果4
hIOWGOOOOOOOOOOOOOOCJOOOOKOOFCONOOOOOJOWDOOOOOOHOOOOOOOOOOOOOOOOOOOOOSOFOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHOWOOOOOOOIOOOOOCOOOOOOHOOIH(OOOOOOOOOOIKOOOOOOOOOHOOOOOOOOOOOJCOOOOOOWFOOOOOOOOOOFOOOO(OOOOOOOOOOOOO(OOOOOOO
まとめ
哲学という難解な分野だったこともあり、ぱっと見では人工知能が作ったとは判断できないレベルの文章が出来上がりました。しかし、想定通りではありましたが、意味のわからない文章しか出来ていませんね。
文字化けした原因はよくわかりません。日本語の文字コードとかの問題なんですかね?
また、おそらくですが、今回は文字単位で入力して前後関係を比較していると思うのですが、単語単位で入力をする(ぽい)ソースコードもありました。
あらかじめ形態素に分解しておいて、このソースコードを使うともう少しそれっぽい文章が出来上がるのかもしれません。面倒なので僕はやりませんが。
感想
もっと実用的にするためにはどうすれば良いのでしょう?
圧倒的にインプット不足なのが原因の一つだとは思います。
例えるなら、異常に記憶力が良い赤ちゃんに、哲学書の文章の羅列を見せて、文字の並び替えをさせているかのような。そんな印象を覚えました。
もちろん、インプットの量を増やせば良くなるかと言うと、そう単純な問題でもないのですが、文章を書かせるにはもっともっと大量の文章・単語を入れてあげなきゃと感じました。
他にも「どんな目的で文章を書くのか」というゴールをインプットすることも必要ですよね。うーん…書き始めると長くなりそうなので、この辺りは機会があれば書きます。
おまけ:マルコフ連鎖でもやってみた
今回はディープラーニングで出来ることを試したかったのでRNN+LSTMを使ってみました。しかし、それっぽい文章の生成を目的とするのであればマルコフ連鎖というものもあります。
karaageさんのこちらの記事が非常にわかりやすかったので、入力の文章だけ変更してそのまま使わせていただきました。
マルコフ連鎖を使ってブログの記事を自動生成してみた - karaage. [からあげ]
結果
結果1
科学の方法を歴史そのものが甘ったるいのだ。前者に於てより根柢的な分析官能というような条件は併し日本の危機である。批評の価値を、この認識論的知識への表出である――はもはや心理の所有とい うことであり、それとは関わりなく、有害な公式主義に一応発達しているものではないか。報道と広告とは超越的批判だということは人の認識の問題に就いてであり文化的自由のためのものであろう。 一体道義的感触の挑発にあるのである。
結果2
フランス大革命に対する彼のパラドックスはもはや必ずしもイデオロギーのイデオロギーとしての哲学趣味を気にして置かなければ意識の特色は、論語でも判ろう。現在の実際生活から除外することが 出来る。処が又家族主義に他ならなかった。
感想
事前にMecabで形態素に分けているからか、こちらの方がそれらしい文章になった印象です。
参考にしたサイト
- 【エヴァンゲリオン】アスカっぽいセリフをDeepLearningで自動生成してみる - Qiita
- Oriental Robotics: RNNによる学習で文豪っぽいテキストを出力させる (aka DeepDazai)
- RNN / LSTM を用いてさだまさし風の歌詞を自動生成してみる - Qiita
- https://github.com/sherjilozair/char-rnn-tensorflow
*1:ディープラーニングの中でもRNN(リカレントニューラルネットワーク)とLSTMという仕組みを使ったもの