「べ」と「で」と「げ」の違い・その3。

 本日の日記は子音の話である。これまでの私の経過を追っている方なら分かっていると思うが、子音の研究の道のりは険しい。

 いつもの繰り返しになるが、私は子音というものを解明したいと思っている。母音についてはその物理特性がかなりのところまで分かっているが、子音についてはほとんど分かっていない。分かっていないままおよそこのあたりだろうと見当をつけてアプリケーションを開発したらなぜか動いてしまったというのが現状なのでなんとかしたい。

 本題に入ろう。今回は、人間が発声した母音のみの音声に、子音を付与することができないだろうかと試みてみた。従来は、人間の子音をそのままくっつけたり、一度それっぽいパラメータにしてからくっつけたりしていたのだが、そうではなくて今回は子音データを参照せずに手作業で加工して子音を付与する。成功すれば、子音というものがぐっと明確になるはずだった。

 というわけで、結論からいえば成功しなかった。とはいえ、研究自体は進んだ。

 まず、今回の対象は/p/,/t/,/k/である。つまり/a/を加工して/pa/を作ったり、/i/を加工して/ti/を作ったりするのが目標である。「あいうえお」という母音から「ぱぴぷぺぽたてぃとぅてとかきくけこ」を作るのが目標である。

 加工の仕方であるが、基本的にこの15モーラで全て異なる。一例として/u/→/ku/の話をしよう。/u/のスペクトログラムは以下のようになっている(加工前)。横軸が時刻(画像いっぱいに約0.3秒)、縦軸が周波数(0-8kHz)、色が振幅(赤くなるほど大きい)である。

そして、これを以下のように加工した(加工後)。

(1) /u/の冒頭部分を削った。
(2) 低い周波数のところに、一様な振幅でランダムな位相の領域を一定時間作った。

 その結果、私の耳には「く」に聞こえる音になった。この加工法が最も単純な例だが、ほかの14種類のモーラについてもそれぞれに異なる加工法を作った。私の耳には「ぱぴぷぺぽたてぃとぅてとかきくけこ」ができたように聞こえた。

 しかしながら、まだまだ聴覚の正常な65歳前後の男女各一名に聞かせてみたところ、子音は全く聞こえず、単に(汚い)母音しか聞こえなかったようだった。そのほか、30歳前後の男性2人にも聞いてもらったが、「たてぃとぅてとかきくけこ」は聞こえていなかった。つまり、今回の加工で意図どおりに子音が聞こえていたのは私だけであるということになる。

 自分の加工した何かが自分にだけ意図どおりに知覚できてしまうというのは、人工知能関連の研究にはよくあることである。事実として目標には到達できていないのだが、考察すべき点はある。

 今回の加工に用いたのはほとんど上記の例のように「ある時間周波数の領域を一様な振幅でランダムな位相にする」というものだった。この操作は二つの見方ができる。一つは母音にカラーノイズを付与しているというものである。この見方をすると、「子音=母音+カラーノイズ」という仮説が生まれるのだが、事実として子音が聞こえない以上、この仮説は棄却される。もう一つの見方は、「何かをマスクしている」というものである。今回加工したその領域に子音を決定づける何かがあり、加工によってそれを隠しているのだという見方である。そのように考えると、私が子音つきの音声を聞いているように錯覚してしまったことも、ほかの人には子音が聞こえなかったことも説明がつくだろう。

 加工した領域の周波数は15種類のモーラによって異なる。その領域に何かがあるのではないかと踏んでいる。

 ところで、こういう研究は60年代に済んだと私がよく言われたが、実のところその頃にはできなかったのではないかと思っている。データとパンチカードを計算機事務所に提出してから出力が出るまでに(手続きの都合上)一日かかった時代に、一日数十回の試行錯誤ができたとは思えない。

 いつもと同様に今回もスクリプトと音声をSkyDriveに置いておく。自由に使ってもらって構わない。改変・二次配布も許可する。スペクトログラムの画像も同梱している。また、今回も「重点領域研究「音声言語」・試験研究「音声DB」連続音声データベース*1」というデータベースを無料で使わせていただいた。データベースを提供してくださった国立情報学研究所音声資源コンソーシアムの方々に感謝します。

*1:板橋秀一「文部省「重点領域研究」による音声データベース」日本音響学会誌,48巻,12号,pp. 894-898 (1992)

コンピュータ将棋の学習の失敗談。

 本日の日記は数年前の失敗談である。そして、コンピュータ将棋の話でもあり、機械学習の話でもある。

 まずはざっくりとした話から始めよう。今のコンピュータ将棋というのは、探索と評価関数からできている。探索がおよそ読みに相当し、評価関数がおよそ大局観に相当する。この評価関数というのは以前は技術者が経験と勘に基づいて職人芸で作っていたそうなのだが、今は自動的なパラメータ学習によって作られている。

 評価関数作成が職人芸から自動学習へ移り変わったのはまだつい数年前のことであり、これが大きなブレイクスルーだった。それ以前にも自動学習の試みはあったらしいが、実用的になったのはBonanzaというソフトからだそうである。

 何をもとに自動学習しているのかといえば、プロ棋士やトップアマチュア棋士たちの棋譜である。ここからパラメータを自動決定している。棋士たちの棋譜を「模範解答」とし、それをはじき出すようなパラメータを求めている。

 本日の日記で大切な概念はこの「模範解答」である。コンピュータ将棋以外でもパラメータの自動決定にかかわる技術のことを「機械学習」というのだが、この機械学習は大雑把に分けて二種類ある。「教師あり学習」と「教師なし学習」である。この二つは「模範解答ありなのかなしなのか」と言い換えて大体あっている。今のコンピュータ将棋の流行は「模範解答あり」なので「教師あり学習」ということになる。ここまで細かいところに異論はあるかもしれないが、大筋は間違っていないはずである。

 ここから私の考えに入っていくのだが、おそらくこの教師あり学習を極めていけば数年後には次々と棋士たちをなぎ倒していくだろうと思う。トップ棋士たちとも互角かそれ以上になるだろう。でも、それでは機械が人間を越えた気がしないのである。なぜなら、人間の作った模範解答を参照しているからである。どうせなら、人間の模範解答に頼らずに将棋のルールのみからパラメータを自動学習し、人間に勝利したい。これこそが完全勝利だと思う。教師なし学習こそが完全勝利だと思っている。

 すでに教師なし学習でのコンピュータ将棋の研究開発をしている人はいるが、今日はその人の話ではなく過去の私の失敗談を書きたい。

 まず私は簡単にいえばこんな感じのアルゴリズムを書いた。最初にパラメータの初期値をランダムに作成しておく。そのパラメータに乱数を加えたパラメータを作る。二つを対局させ、勝った方のパラメータを残す。これを繰り返す。

 実際には数段階複雑なアルゴリズムを書いたのだが、失敗の方向性はこれと同じなので、この程度の説明で問題はない。

 このアルゴリズムはある一つの条件を仮定している。それは、勝った方が優秀なパラメータであるということである。ところが実際にはそんなことはない。このことは将棋をジャンケンに喩えるとよく分かる。アルゴリズムの繰り返しの初期でパーが強いということになったとしよう。そうすると、機械はパーばかりを出すようになる。すると次第にチョキが強いということになり、チョキばかりを出すようになる。同様にグーばかりを出すようになる。これがループし、偏りのあるジャンケンマシーンが生まれてしまう。話を将棋に戻すと、戦法や駒の価値に「偏見」が生まれ、その偏見が偏見を呼び、いつまで経っても偏見を拭い去ることができないといった具合である。

 数年前、私はそんな罠に陥り、それを克服するための実用的な手段が思い浮かばなかったので、この方針でコンピュータ将棋を作るのをやめた。

 一つの解決方針として、作ったパラメータ全てを記録しておき、それら全てと新しいパラメータを対戦させるということも考えたが、計算量として実用的ではないと思った。こういうミスをしてしまうあたり、私が機械学習の素人であることを物語っている。

 ともあれ、いつかは教師なし学習による強いコンピュータ将棋を誰かが作らねばならないと思っているので、教師なし学習にとり組んでいる人を応援しているし、私自身も教師なしという枠組みでモンテカルロ法にとり組んでいる。そしてゆくゆくは「機械の序盤」というものを見てみたい。

夢と見栄。

 私が修士のときに所属していた研究室には企業との共同研究を遂行している学生が常に複数人いた。それらの企業の開発者たちが言った言葉が未だに印象に残っている。

 私はそのときその企業には関わっていなかったが、なぜか会議に同席していた。当時助手だった先生(今の助教相当)が開発者たちに、現在の進み具合と今後の方針を語り終えると、企業の人は少々不満げにこう言った。

「うちでできる細かいことはうちでやりますから、大学にはもっと夢を見てほしいんです」

 助手の先生が説明した内容は、企業の人が言うほど重箱の隅をつついている感じではなく、大学の標準的なレベルだったと思うのだが、企業の人は「夢」を要求した。それはつまり、大学の標準的な研究が全て「細かいこと」であることを意味する。私にはそういったものの見方が新鮮だった。

 その数年後、博士号を取得し、いろいろと単純な事情があって私は無職となった。無職の私はふらっと日本音響学会の大会を訪れた。大会の一つ一つの発表を見ているうちに、私は一つのことを確信した。ほとんどの発表はもしも学生や教員ではなく単なる無職の人が講演していたら、何の反応もなく無視されるだろうということだ(何件かは無視されない)。それは極端な喩え方をするなら、小学校の学芸会を大人がやっても誰も喜ばないということに似ている。ほとんどの学会の発表はアカデミックな肩書きがあるから許されているのである。なるほど、企業の開発者からしてみれば、「細かいこと」として映るはずである。

 そういったことを思いながら昨年末に、細かくない研究ができるのは修士の学生くらいだろうということを書いた(「何かが欠けている音声認識研究」についての話)。細かくない研究というのはギャンブルであり、失敗すると何も得られないが、何も成果を出さなくていい人材は社会の中では修士くらいしかいないだろう、という趣旨である。その後、その日記を見たとある教員が私に話しかけてきた。

修士も今は成果に見える何かを出さざるを得ない。なぜなら『何もできませんでした』だと指導教員が馬鹿にされるからだ。要するに、教員の見栄だ」

 冒頭で企業の人が言っていた「細かいこと」を作り出していたのは、どうやら教員の見栄だったようである。修士の学生を「細かいこと」に割り当てているのは教員の見栄なのだ。見栄は人間関係の問題なので、とても解決しづらい。もうしばらくは、その企業の人が欲しがっていた夢は語られそうにない。

 見栄に関する問題は私の苦手とするところなので、ほかの人の議論を読んでみたいものである。

モンテカルロ5五将棋の試み、その1。

 本日の日記はコンピュータ将棋の話題である。といっても、本文にはほとんど内容はない。内容があるのはソースコードのみである。

 結構前からコンピュータ将棋を作っている。コンピュータ将棋の今の主流の考え方はmin-max法に基づくものだが、私はコンピュータ囲碁で主流のモンテカルロ法で作っている。モンテカルロ法で将棋を作っている方々はほかにもおり、私のものよりもずっと強いのだが、私は私でこつこつと作っている。最初は「どうぶつしょうぎ」で作り始め、今回その思考ルーチンを5五将棋に移植した次第である。

 5五将棋に移植してから少し手を加えて、ようやくたまにそこそこの棋譜を見せてくれるようになったので、ソースコードを公開する。ただし、思考時間はものすごく長く、また、メモリ使用量も多い。つまり、遊んで楽しむことはできない(遊んで楽しむのにはモンテカルロどうぶつしょうぎがよいのだが、こちらはソースコードの公開に問題がある)。ソースコードの二次使用などは特に制限するつもりはないが、まだ実用段階ではないので使用する目的がなかろう。改変や二次配布も制限しない。

 以下、最も気に入っている棋譜である。先手が私のモンテカルロ木探索であり、後手がものすごく弱く設定したmin-max (alpha-beta)法である。

続きを読む

「べ」と「で」と「げ」の違い・その2、およびその前置き。

 本日は音声の話である。前半は一般論だが、後半はマニアックな話である。

 音声工学の歴史はわりと浅い。長く見積もっても百年であり、短く見積もると五十年くらいである。その五十年の歴史をさかのぼると、最初に手作業で試行錯誤していた時代があり、徐々にコンピュータが威力を発揮し始め、そして二十年ほど前に機械によるパラメータの自動学習が本格的に始動した。つまり、現在の技術の原型は二十年ほど前からあまり変わっていない。この話は先日Ustで中継された音響学会のプレイベントでも触れられた。

 そこから先の論調は大抵「これからどこに行けばよいのか」という問いかけになるのだが、それはおそらく歴史を振り返るという罠にはまっている。確かにそれぞれの年代によって研究のメインの課題は変わっていっただろうが、古い年代にあった研究課題は決して時代遅れになったわけではなく、もしもその頃の問題がまだ解決されていないのなら、当然現在においてもその研究はおこなわれるべきである。

 では、このところ研究の主流から外れているもののいまだに解決されていないものは何なのか。その一つが子音である。ほかにも多くの未解決課題はあるが、大抵それらはメインの研究課題だとみなされている。子音のような基礎的な部分がぽっかりとメインから外れている。海外に目を向けるとconsonant challenge(子音チャレンジ)なるものがあり、一見子音について一生懸命に研究されているようにも見えるが、実際のところ母音にも使う手法を子音にも当てはめようとしているだけである。そうではなく、子音ならではの何かを見つけなければならないのだと私は思っている。

 子音についてのことは「ゆっくり」の声でお馴染みのアクエストの人がブログにもつづっている。

しかし、この分野に携わる研究者は、未だに音韻を弁別する物理的特徴が明確になっていないという事実を、常に頭の片隅に置いておく必要があると思います。
例えば、/p/、/t/、/k/のこれら音韻の物理的特長の違いを示せといわれて、ちゃんと答えられる人がいるのかな?どこからも歯切れの悪い答えしか得られないのが現状ではないでしょうか。

コーパスベースの音声合成

 音声合成の開発者が、「何を合成しているのか分からない」と言っている構図である。私はもう研究者とは自称していないし(学会は見に行っていますが)、この方もおそらく世にいうところの研究者ではない。そういう人からばかり子音の話が出て、なぜ研究者からこういった話が出ないのかというと、ひとえにそういう研究はコストパフォーマンスが悪いからである。とり組んでもなかなか芽が出ない上に、成果が出たとしても前述したように「昔の課題」なのでまともに学会で相手にされづらく、論文になる可能性は低い。研究計画が立てづらいので予算もつきづらい。ゆえにごく少数の研究者しかとり組まないのである。

 では、誰もとり組んでいないのかというとそんなことはなく、日本人では「つ」と「す」の違いについて研究している研究者もいる。素人目に見ても玄人目に見ても、工学的にはなんだかしょぼい研究課題に映るかもしれないが、このあたりを徹底的に追究することが子音解明への突破口になるかもしれないのである。誰もがやりたがらないが誰かがやらなければならない重要な研究である。また、工学系ではなく、言語学系の研究者は結構このあたりを熱心に研究しているようだが、詳しいことは知らない。

 ここまでが前置きである。ここからマニアックな話になる。

 私は/b/と/d/と/g/の違いがどこにあるのかということを研究している。この三つは言語学的には調音位置(平たくいうと口の上と下が狭まる位置)が違うということになっている。それ以外の特徴は一緒であるということになっている(私の文系の音声学の理解も大雑把だが)。

 ならば、この三つの子音の調音位置の違いは、物理的には(音波としては)どこに現れてくるのか。さすがにこのあたりは昔からある課題だけに通説もあるが、丁寧に検証していくとその通説の怪しさが見えてくる(第二フォルマントがどうのこうのというやつである)。

 こういう問題にどうアプローチするのかも難しいところなのだが、私がいろいろと試行錯誤した結果、/bi/の音声信号から/di/に聞こえる音声信号を作る手法を編み出すことに成功した(七名のデータ全員で成功している)。だからといって、そこが/b/と/d/の違いなのかというと決してそんなことはなく、同じことをしても/ba/が/da/にはならないのでやはり違いではないのだが、違いに到達するための何かを手に入れたという確かな手応えがある。誰かが見つけなければならない鍵の一つである。

 以下、音声である。

D

 なお、手法についてはメールでの要望が多ければこのブログに書く。変換用のスクリプトは、メールに入手希望理由を書いていただければ、無料で送るつもりである。それから、誰か学会で発表したい人がいたら、代わりに喋っておいてください。

最善手は五分のわかれ。

 今年もくだらないことを書く日がやってきた。今年は囲碁の話を書く。私が今はまっているのは将棋観戦だが、今日は囲碁のことである。

 小学校三年か四年くらいの頃に、三ヶ月か半年くらい、囲碁を習っていたことがある。近所で碁会所を開いていたアマチュアのおじさんに習っていた。結局ほとんど強くなれずにやめてしまったのだが(同じくらいの年の人もほとんどいなかったし)、そのおじさんの言葉で一つだけ印象に残っているものがある。

 そのとき私はものすごく初歩的な定石を教わっていた。定石の内容は書かないが、黒石三つ、白石三つを隅に打つだけの簡単なものである。私は定石というものを初めて習ったので、そうかこれで勝てるのか、などと単純に思っていたが、六つ目の石を置いて手順を示し終えたおじさんから出た言葉は「これで白と黒は五分五分だ」というものだった。定石を必殺技だと思っていた小学生の私にとって、五分五分というのは肩透かしだった。

 結局、定石がなぜ五分五分なのかということが分からずに囲碁をやめて二十年くらいが経った。そして、将棋のコンピュータソフトBonanzaの影響で少し前からコンピュータ将棋を趣味として自作するようになって、ようやく五分五分の意味が分かった。相手もこちらも最善手を打ったら五分五分になるのは当たり前なのだ。逆に五分五分にならない手が浮かんだとしたら、相手の最善手を読み逃している可能性があるということになる。おじさんの「五分五分」は深遠な言葉でもなんでもなく、理屈で説明できるものだった。

 おそらくどんな種類の勝負でも、対等な立場の相手がいる限りは必殺技というものは存在せず、五分五分の戦略が正解なのだろうと思う。

 今分からないのは、相手と非対称な関係にある場合でも最善手が五分五分になるかどうかである。例えば、ピアノのコンクールや、顧客へのプレゼンなど、片方が審査員の場合である。どうもこういうときには審査員が必殺技を持っている気がするのだが、この場合も考え抜くと五分五分になるのだろうか。

フィクションの中の音声工学。

 先日、知り合いが「踊る大捜査線」のスピンオフの「交渉人 真下正義」を見たと言っていた。そのときに「最近の警察って音声からぱぱっと犯人を割り出せちゃうんだねえ」とも言っていた。どうやら、あれがフィクション内の誇張表現だとは思っておらず、作中で表現された技術がそのまま実行可能だと信じ込んでいるようだった。

 さて、まずは「交渉人 真下正義」に出てくる音声の技術の中から二つほど紹介しよう。一つは、ボイスチェンジャーによって変換された音声を逆変換して完璧に元に戻すというものである。もう一つは、犯人の声を過去のデータベースから探してそれが誰であるかを特定するというものである。作中ではこの二つの技術によって犯人を割り出している。

 一つ目のボイスチェンジャーについては、逆変換はほぼ不可能である。作中では、どのようなボイスチェンジャーが使われているのか分からない状態で音声を復元しているが、その場合は絶対に不可能である。もし復元を試みるなら、犯人が使ったボイスチェンジャーの特性を手に入れなければならないのだが、手に入れられたとしても自然に聞こえる音声を復元するのはまず無理だと思ってよい。

 では、ボイスチェンジャーを使われてしまった場合にどう対処すればよいのかということだが、実際のことは警察に訊いてみないと分からない。私なら、音声を復元することはしないと思う。犯人を捕まえたあとで、同じボイスチェンジャーを使わせて、電話で録音した声と同じになるかを調べるのが手っ取り早くて確実なのではないかと思う。

 次に、音声照合の話だが、これはそこそこできる。ただし、作中の表現のように、「見つかりました。この人です」と一人だけ確実に突き止められるわけではなく、実際には機械が何人かの候補を出したのちに結局は人間が目と耳で「きっとこの人なのだろう」と判断することになる。また、データベースの走査を途中でやめることはなく、最後のデータまで調べあげなければならない。

 なお、少し難しい話になるのだが、ボイスチェンジャーで変換された声をデータベースと照合する場合、作中のように元の声に戻す必要はない(戻せるなら作中の戦略でもよい)。それよりも変換されたままの声から話し手の特徴を分析してデータベースから検索した方が話が早い場合もある。元の声に戻してから照合するか、戻さずに照合するかは技術者次第だが、この映画の場合にはボイスチェンジャーの特性が分からないので、戻さずに照合する方が適しているのではないかと思う。

 こういったフィクション内での警察の技術の誇張の話は音声処理技術だけにとどまらず、画像処理技術やその他の技術にもいえる話であるらしい。現実を知る人たちの間では、「フィクションに出てくる警察の情報処理能力の高さは異常」ということになっている。ただ、まあ、情報処理能力が高いと思われていた方が、犯罪防止のためにはよいのかもしれないけれども。