CLOSE

深層学習を用いた複数マイクロホンの音源分離 / Multi-channel speech source separation with deep learning(全1記事)

2019.07.30

Brand Topics

PR

深層学習を用いて音源を分離する––LINE Research Labsが研究成果を解説

提供:LINE株式会社

2019年7月5日、LINE株式会社が主催するAI技術者向けの勉強会「LINE AI Talk #02」が開催されました。第2回となる今回のテーマは「信号処理」。AI関連技術を活用したさまざまなサービスを開発しているLINEの取り組みだけでなく、この分野の第一人者をゲストスピーカーに招き、最新の知見を学びます。プレゼンテーション「深層学習を用いた複数マイクロホンの音源分離」に登壇したのは、LINE株式会社Research Labsに所属し、工学博士でもある戸上真人氏。深層学習を用いた音源分離の取り組みと、その仕組みを解説します。講演資料はこちら

深層学習を用いた複数マイクロホンの音源分離

戸上真人氏(以下、戸上):それではLINEから、音の技術の研究と、この分野の動向についてお話したいと思います。

簡単に自己紹介ですが、私はLINEのResearch Labsに2018年の6月から研究員として所属しています。

その前はアメリカの日立にいて、スタンフォードの客員研究員もやっておりました。ずっと変わらず信号処理、とくに音声の処理などをやっています。

ということで、今日も音声処理。とくに音声の前処理の、音源分離技術ですね。信号処理のところを中心にお話したいなと思っております。

今日のトピックの信号処理ですが、私はこれまで、音声信号処理と、計測装置の信号処理などをいろいろやってきています。信号処理とは、非常にチープな言い方なんですが(笑)、非常におもしろい分野だと思っています。

信号処理が使うデータ解析ツール自体は、一般のデータ分析と同じで、例えば線形代数が大事だったりしますよね。そういう数学的な基盤は同じなんですが、思想と言いますか哲学みたいなところは、一般のデータ解析とはかなり異なっているんじゃないかなと思っています。

何が違うかというと、信号処理ではデータの裏側にある、例えば物理現象だったり、「モデル」を非常に重要視する分野だと思っています。

実際に信号の性質に合ったモデルをうまく設定することができると、例えばデータ自体はすごくノイズが入っていて低品質なデータであったとしても、そのモデルの力を使って欲しいデータだけをピックアップしたり、欲しいパラメータを推定したりできる。そこが信号処理の非常におもしろいところで、魅力的なところなんじゃないかなと思っています。

一方で近年AIの発展ということで、ディープラーニングが非常にフォーカスされています。一般によくこういうことが言われるんじゃないかなと思うんですが、ディープラーニング自体はすごくイノベイティブなツールであることは間違いないんですが、「なにも事前のモデルを使わなくても学習ができてしまう」と。

こういう言い方をされると、ディープラーニングの時代においては、もはや信号のモデリングは必要ないんじゃないか。こういうふうに思われる方がけっこういるのかな、と思います。私はこれに関しては、徹底的に「No」と言いたいと思います(笑)。

ディープラーニング時代には、ますます信号のモデリングが必要になってくる、と思っていまして。こういう観点で今日はお話をしたいなと思っています。

DNNにおける信号モデリング

一般的には信号モデリングは必要ないと言われる方もいる一方で、ただ、ディープラーニングのコンテキストでも、信号をモデリングすることは非常に重要だと言われているわけですね。

みなさんご存知の、モントリオール大学のヨシュア・ベンジオ先生。Representation Learningに関する論文の中で、generic priorですね。比較的抽象的が高い事前分布を使って機械学習することが非常に重要だとおっしゃっているわけです。

例えば、学習したい非線形関数がスムーズであることを仮定するのが重要ですし、または画像みたいなものを考えましても、例えば動画とかでも、時間方向、もしくは画素の方向で空間方向に相関がありますよね。

またはその背部に隠れた潜在変数はすごくsparseであることも需要な仮定になります。先ほどのグラフの話も関連すると思うんですが、因子間の関連性はすごくシンプルにできているはずです。

こういうことはある意味、事前知識であり、モデルなわけですね。こういうモデルを使うことによって精度高く学習ができますし、また解釈可能性という観点でも非常に重要、ということになってくるわけです。

もっとモデルをダイレクトに用いるような研究もいろいろなされていまして、このStructured Variational Auto Encoderを1つ挙げさせていただきました。2016年の論文ですが、どういう論文かというと……例えば動画で人の動きを見たいときに、その人の動きは少しずつ変化していくわけなので、状態交換モデルで書くのが望ましいわけです。

そういったものを信号処理は昔からグラフィカルモデルで書いたりするんですが、この論文でもそういったグラフィカルモデルで、例えばState-space modelやいくつかのクラスタに分かれるんだということが事前にわかっているんだとすると、それをGaussian Mixture modelみたいなもので書く。

潜在変数はそのように確率的なモデルで書いといて、ただ観測されるデータ自体はその潜在的な変数がそのまま観測されるんじゃなくて、なにかしらの非線形な変換が施されて観測されます。その変換の仕方はなかなかモデリングしにくいので、ニューラルネットワークを使います。

ただ裏側にある潜在変数は、なにかしら想定できるモデルがあるので、それをグラフィカルモデルで書いて、それをどうコンバインして最適化するか。こういう議論がなされているわけですね。

このように、シグナルモデリングはニューラルネットワークの時代においても、非常に重要なツールになると考えています。

ただ、なんでもかんでも人がモデリングすればいいかというと、必ずしもそうではなくて。信号を確率的にモデリングしようとすると、ガウシアンや逆ガンマなど、いわゆる共役事前分布になっていることなどを気にして、モデリングすることもやはり多いわけです。

そういったモデリングが必ずしも実際の信号にフィットしているかというと、そうではないケースもあります。そういうところに関してはニューラルネットワークを使いながら、想定できる信号モデルをうまく活用する。つまりニューラルネットワークと信号処理をうまくコンバインして、目的関数を最適化していくことが必要なんじゃないかと思っています。

なぜ音源分離は難しいのか?

前置きがかなり長かったんですが(笑)、そういう観点で「音を分離する」という技術において、どうやってシグナルモデリングとニューラルネットワークを合わせていくか。こういう観点で近年の動向と、今LINEでやっているアクティビティに関してご紹介したいと思っています。

やりたいことは、例えばテレビ会議システムだとか、または音声通話装置。こういったものでコミュニケーションをとるときに、自分の取りたい人の声だけが入っているケースはレアであって、ほかの人の声が入ったり、例えば背景雑音、またはこういう部屋だと壁や床で反射したような音が混ざってしまうわけです。つまり不要な音が混ざってしまうので、音質を下げてしまう。

または音声認識装置みたいなものを考えても、こういう不要な音は認識率を下げる要因になります。カーナビでも走行雑音は非常に大きい問題です。なので、このようないろいろな音が混ざった中から欲しい音だけをピックアップして、不要な音をいかに除去するかはすごく重要な問題になってくるわけです。これに対してどう取り組むか。今日話すお話は、このお話になります。

何故、音源分離、欲しい音だけをピックアップするのが難しいのかを、簡単に数式でご説明したいと思います。

やりたいのはクリーンなスピーチの抽出ですね。なにも不要な音がない信号を取り出したいわけです。ただし難しいのは、我々が知れるのは「すべての音が混ざった入力信号」だけなんですね。

ここで言うところのXだけが与えられていて、ほかはなにもわからない。Xというのは、実は中身を紐解くと、クリーンなスピーチ「S」が部屋や壁で反射して、かつマイクまで伝わるときにすべての音が混ざったかたちで入ります。つまり、このミキシングされるマトリクス「A」が掛けられたかたちで受音される。さらに背景の雑音もあるので、X=AS+Nと書かれるわけです。

Xしかわからないので、XをAS+Nというかたちに分解しようと思ったら、この分解の仕方は無限にあるわけですね。なので、1つに選ぶことができない。これが難しさの本質なわけです。

というわけで、AとかSとかN、一切わからないときに分解するのは、基本的には不可能です。ここに対して信号処理は、AやS、Nが、ダイレクトにその値がわからなかったとしても、なにかしらその性質がわかれば、それを使って、無限にある候補の中からもっともらしいものを一つ選ぶことができます。こういうストラテジーをとります。

従いまして、AやSやNの特徴をいかにしてモデリングするかが、音源分離においてはものすごく重要になってくるわけです。

音声信号をモデリングする

具体的にどういうモデルを使ってこの信号分離を解くかという観点なんですけども。音源分離では大きく2つのモデルを使います。1つは音源モデルと、もう1つは空間的なモデルです。

音源モデルは、先ほどのクリーンな信号「S」がどういう特徴を示すかのモデルであり、空間モデルは音が伝播するときの「A」に関するモデルになります。

音声信号は音声を音圧で捉えた信号であり時間領域の信号なんですが、音声の性質はフーリエ変換したあとの周波数領域で顕著になりますので、ここに示すように横軸時間、縦軸周波数の時間周波数表現に変換して眺めることによって、その特徴が非常にクリアに見えてきます。

ちょっと比較するために、いわゆるラジオが壊れたような音の白色ガウスはどんなスペクトルかをお見せしています。

明るいところほど、その時間周波数の音声成分が大きいということを意味するんですが、見ていただくとかなり違うわけですね。

つまり、音声はかなり暗いところが多いということで、ゼロに近い音が多いと。音声が大きいパワーをとるところは、ホワイトガウシアンとかと比べてもかなり少数であることがわかると思います。つまり、これを信号処理の言葉で言うと「sparseである」「疎である」ということになります。

また、時間方向に見ていきますと、音量が逐次変化している様子がわかると思います。つまり、定常的じゃなくて、かなり非定常に変わる。時間変化するということですね。縦軸周波数で見ていくと、音声が大きいところと小さいところがだんだん構造になっている様子がわかると思います。こういうのはharmonic structure、「調波構造」と呼んだりしますが、このような特徴がこの時間周波数領域で顕著に見えてくるわけです。

こういうようなsparseとかnon-stationary、harmonic structureを、信号処理では数学的なモデルに置き換えて活用するということになります。

もう1つのモデルはいわゆる空間モデルでして、これは複数のマイクがあるときに活用可能なモデルです。なにかしら音源があるときは、音源が物理的な体積を持っておりますので、同じ場所に複数の音が重なって存在をすることはあり得ません。空間的に音が、場所が違うところに存在するのは前提に置けるということになります。

そのように空間的に場所が違って、しかも複数のマイクがありますと、例えばこの図で左から喋った人の声は左のマイクに先に届いて、右のマイクに遅れて届くということがわかるわけです。逆にこの右側の人が喋っていると、右のマイクに先に届いて、遅れて左のマイクに届くわけです。

このように空間的な場所に依存して、マイクのもとまで到達するときの時間差や、周波数領域で言うと「位相差」が異なることがわかるわけです。この性質を逆に使うと、マイク間の位相差を調べることによってどこから音が来たか、つまりどこかからの音だけをピックアップすることができるので、この位相差、時間差は音を分離するための重要な手がかりになってきます。

いかにして音源分離を行うか

ということで、この2つを使ってどう分離するかが音源分離では重要です。

こういう観点でこれまでもいろいろな方法がかなり検討されてきました。例えば、古くは1994年、コモンさんが理論的にまとめられたということだと思うんですが、いわゆるICA、独立成分分析といったものが、この音源分離を流行らせる1つのきっかけになっています。

音源モデルにおいて、音声の大きいところは稀であって、ゼロが多い信号。これはふつうのガウス分布と比べて、ゼロのところがすごく尖っています。スーパーガウシアン分布になるんですが、こういうものが仮定できればうまく分離ができます。こういう音源モデルを使うことでうまく分離できることを示した方式になります。

そのあともICAベースのものがたくさん提案されているんですが、近年おもしろいモデルとしてDuongらが提案している、いわゆるLocal Gaussian model(LGM)があります。これは先ほどのICAと違って、想定するものはガウス分布です。ただ、定常的な、音量が変化しないガウス分布だと、先ほどのICAで示されているように分離ができないです。

これがおもしろいのは、分散が時間ごとに変化するガウス分布と置きます。そうすると分散をうまく調整することで、ガウスなんだけどスーパーガウス分布のようなものを作り出すことができるので、うまく分離ができるようなものになります。

さらにこれがおもしろいのは、ガウス分布なので……信号処理においてはガウス分布を仮定するツールは、すごく多いわけですね。ウィナーフィルタやカルマンフィルタみたいなものはガウスを仮定するので、そういうものに簡単に当てはめて、簡単に拡張できる意味で非常におもしろいと思います。

そのあともいろいろあって、順番が違いますけれども(笑)、例えばICAを拡張したIVA。ICAは基本的には、各周波数ごとに音を分離する技術なんですが、音声にはいろいろな周波数があるので、そのいろいろな周波数間のモデルも信号モデルに合わせて分離するアプローチです。

どういうことを仮定するかというと、例えば「あ」と喋ったときに、すべての周波数が恐らく同時に大きくなるでしょう。また、無音になったらすべての周波数が同時に小さくなるでしょう。こういうふうに、周波数間で同じように大きくなったり、小さくなったりするように動くでしょう、ということを前提にします。こういうソースモデルを使うと、うまく分離ができます。

さらに、このIVAを少し発展させたILRMAが近年提案されています。これは「すべての周波数が同時に動く」をもう少し拡張して、いくつかの周波数群が同時に動きます。その周波数群のパターンが2~3個あります。そういうふうにモデリングして、IVAよりも精度よく分離する手法です。

DNNベースのソースモデルの登場

このように見ていくと、音源モデルをいろいろ工夫することで音源分離の性能が上がるのが、これまでの歴史でした。ですが、ここに見ていただければわかるとおり音声のモデルは、先ほどの「すべての周波数が同時に大きくなったり小さくなったりする」というような単純なモデルでした。

確かに大きくなる集合はあるんですが、すべてがいきなり大きくなるというのはちょっとラフな仮定ですし、またそのパターンが2~3個というのも、かなりアンマッチなわけですね。2~3個以上に、パターンがたくさんありそうです。

つまり、音源モデルは非常に重要ではあるんですが、今までの人手で作った音源モデルだけではどうしてもこういう複雑な音声の形状を表すことはできないのがこれまでの限界だったと考えられます。

その1つの打開策が、ディープニューラルネットワークです。

DNN自体はこれまでも音声認識で使われていたわけですが、音源分離で盛んに使われ始めたのが2015年ごろかな、と思っています。

このようなDNNを使いますと、DNNの非線形の表現能力の高さによって、先ほどの複雑な音声の特徴を捉えることができるとわかりました。ということで、これ以降、DNNベースの音源モデルを使った音源分離が非常に盛んに検討されるようになりました。

ただ、先ほど示したように、音源分離をするためには音源モデルだけじゃなくて、いかに空間的なモデルを併用するかが重要な観点になってくるわけです。どうやって音源モデルと空間モデルを合わせるかが次の課題になります。

こういう観点で考えると、これまでの流れは大きく2つに分けられるんじゃないかなと思っています。1つ目は、DNNを使わない従来のフレームワークをある意味そのまま使って、ちょっとだけ音源モデルのところをDNNに置き換えると。ミニマムな変更に済ます、DNNを最小限に留めさせるようなアプローチです。

具体的には、音源モデルのところをDNNで学習をして、空間的に音がどこから来ているのかをモデリングする空間モデル。これも従来のフレームワークで音全体を調べながら、どこから音が来ているかを確率的に推定していく。これをイタレイティブに、繰り返し計算で行っていたんですけれども。そこの繰り返し計算で空間モデルを推定するところはそのままに、ソースモデルのところだけをDNNで少し入れるアプローチです。

なので、先ほどご説明したようなLGMにDNNを入れたり、またはILRMAにDNNを入れたりしました。こういうふうな、従来のフレームワークにちょっと音源モデルをDNNに変えるアプローチというのが、いくつか提案されています。

2つ目は、もうちょっと空間モデルを更新するところにDNNのパワーを利用しましょう、というアプローチです。もうちょっと2つをインテグレートしたようなアプローチになります。ここでよく使われるのが、マスク付きのビームフォーミングと言われるような方法です。

先ほど言ったように空間的なモデルは、マイク間で音がどういうふうに違うか、その時間差をモデリングしたものであって、これは数学的に言うとマイク間での相関行列。いわゆる共分散行列ですね。ここで示しているR i,k iが音源のインデックスで、kが周波数。これを求めることになると。

もし仮にこの時間周波数はiの音源しかないことがわかれば、その時間の入力信号を調べることによって、その共分散行列を推定できるわけです。このマスク付きのビームフォーミングでは、その各時間周波数にどの音源が存在するかをDNNで推定して、それを使って空間モデルである共分散行列をアップデートする。そういうアプローチになります。

つまりこのマスクというのが、いわゆる「時間周波数ごとにどの音源が存在するか」なので、これは一種の音源モデルになっていて、この音源モデルのパワーを少し使って空間モデルを推定するようなアプローチになります。

LINE Research Labsでの研究成果

こういうものがいろいろ提案されているんですが、ただ、これまでの活動というのが、DNN自体はできるだけ音源モデルを正確に表すことにフォーカスをしていました。そのソースモデルを学習したあと、音源分離をしたあとの音質が必ずしも良くなるかどうかに関しては、一切保証しないわけですね。音源モデルは良くなるかもしれないけど、音源分離が良くなるかどうかはわからないことがこれまでの限界だったかなと思います。

なので、これではマズいでしょう。マズいでしょう、ってちょっと言い過ぎですけども(笑)。もっとDNNのベースの音源モデルと空間モデルを合わせて、最終的な性能が良くなるようにチューニングしていくことが重要なんじゃないか、と考えられるわけです。

LINEでは、音源モデルと空間モデルを音源分離したあとの精度ができるだけ高くなるようにインテグレーションする観点で、どのように空間モデルを合わせていくかという研究をいろいろしています。それ以外もしているんですが、こういうものに絡むものとして、先月のICASSPで3つほど発表させていただきました。次のInterspeechが9月にありますが、オーストリアでやる学会でもそれに関する発表をさせていただきます。

時間の関係で、上2つをご紹介します。最初のものは、空間モデルをDNNに反映させるための1つのアイデアとして損失関数に空間モデルを反映させます。これまでDNNは音源モデルをいかに正確に表しているかを損失関数にして学習していました。我々がやりたいのは、音源分離後の精度がいかに高まるかを評価したいので,ここでは音源分離したあとの信号に対する損失関数を設定して、それができるだけ良くなるような損失関数を求めます。

具体的に言うと、音源分離というのはマイクに入力信号が与えられて、その入力信号から知りたいクリーンなスピーチの……いわゆる事後確率、もっともらしいクリーンなスピーチを確率的に求めるような方法です。

なので「真のクリーンなデータ」がわかると仮定して、それと推定した事後確率がどれぐらい近いかを測ってあげれば、音源分離性能をちゃんと評価したことになるでしょ、という観点です。ここでは音源分離したあとの事後確率をloss関数にして、DNNを学習するというアプローチをとっています。

事後確率はpθ(c|x)ですが、事後確率を計算するためには事前確率とか、尤度のモデルが必要になってくるわけです。ここで音声の性質を利用した信号モデルを使っていまして、先ほどご説明した時間変化するガウシアンのモデルを使って事前分布を定義しています。それがこの中のpθ(c i,l,k)という分布で、時間ごとに変化する分散を持つガウス分布としてモデリングしていまして、V i,l,kが時間周波数ごとの変化する分散です。

Rは、音源の位置が固定であれば、空間的なモデルは時間変化しないので、時間変化しない共分散行列と時間変化する分散が掛け合わされたものとして定義します。共分散行列は先ほどのマスク付きのビームフォーミング同じように、マスクを使って推定します。

なのでここで未知のパラメータは、時間ごとの音声の分散とマスクなので、この2つをDNNで推定をして、そのあと事前確率がわかるので事後確率を計算して、lossを計算するアプローチを取ります。

いわゆる音源分離では、フィルタリングをするときに、時間変化しないフィルタを用いるのか、時間変化するフィルタを用いるのか、こういう2つのカテゴリーがあるんですけれども。ここでは時間変化する分散を使っていますので、時間変化するマルチチャンネルウィナーフィルタで、具体的にはさっきの事後確率を求めるために必要なパラメータを推定する構成になります。

DNNの構成

具体的なニューラルネットワークの構成はこうなっています。従来のいわゆるディープクラスタリングとかPermutation Invariant Training、マスクを推定するような方法としてこういうのがあるんですが、DNNの構成自体はかなりこれと近い構成をとっています。

下にBLSTMとあるのは、いわゆるBidirectional LSTM(Long Short-Term Memory)で、これは時間波形全部を調べて、その与えられる発話でどういう音源が存在するのかを、全部の時間の情報をサーチして調べることです。昔ながらの確率モデルに基づく方法で言うところの、ちょっとラフに言うとEMの1ステップとかですね。そういう各ステップに相当するものだと解釈できるかなと思います。

そういうDNNを何層か繰り返して行って、どういう音源があるかを調べます。調べたあと、どの音源が各時間周波数に存在するかがわかれば、マスクとアクティビティを計算するための情報が得られます。その2つを分けている理由は、それぞれ少し役割が違うからです。マスクは共分散行列を求めるために使います。Vはフィルタを求めるために使うので、少し役割が違います。なので最後はそこを分けています。そういう構成をとっています。

結果だけ示しますと、予測信号の良さを測るんだったら一番簡単なのが、予測信号と真の信号がどれぐらい近いか、二乗誤差で測るのが、まず考えられます。それと提案する事後確率のものと比べると、事後確率のものが音源分離精度……ここではSIR(Signal-to-interference ratio)、Signal-to-Distortion ratio(SDR)。こういったもので良くなっていることがわかるかと思います。

事後確率を解釈する

最後に、先ほどの事後確率はどんな意味があるのかを解釈したいと思います。これは式で書くとこうなっているんですが、誤差だけ考慮しようと思うと最初のcとcバー、cバーが推定したものとが近くなるようなことだけを考慮してればいいです。

それ以外にここでは、推定した分散の項、Vが入っています。Vが入ることによって、要は事後確率、つまりcとcバーができるだけ一致するということだけじゃなくて、推定した事後確率のピークの部分とそれ以外の部分の差ができるだけ大きくなるように学習が進むわけです。

つまり、これは音声認識で言うところの、例えば識別学習みたいな観点から言っても、よりロバストさが増していると解釈できるんじゃないかと思います。

また、例えば第2項で見てみますと分散が入っているわけなんですが、これは一種の正則化項になっています。学習データの中では必ずしも真の分離信号と合わせきれない部分もあって、そこを無理に合わせようとすると、オーバーフィッティングしちゃう恐れがあります。そこは第2項目の正則化項が、そのオーバーフィッティングを防いでくれているとも解釈できると思っています。

また、伝播自体が平均値であるcだけじゃなくて、分散がこの2通りの方向で誤差が流れていくと。一種のマルチタスクトレーニングみたいなかたちになって、良いところに落ち着きやすくなっているんじゃないかと解釈できるかと思います。

ということで、loss関数に空間モデルを入れるアプローチなんですが、今のケースは時間変化するフィルタを使ったと言ったんですが、時間変化するフィルタを使うことは、時間ごとにフィルタを求めなくちゃいけないので、計算コストとしては大きいわけです。なので実用上は時間ごとにフィルタを求めるのではなく、全時間で1つのフィルタを求めたいわけです。

なので先ほど使ったロスファンクションで学習したニューラルネットワークで推定したマスクの部分だけを使って、時間変化しないフィルタリングをしたときに良い性能を得られるかどうかを評価しました。この場合は従来のマスクを推定する誤差を最小化するような方法、ここではPSAと書いているものがそれに相当しますが、それと比べてみると最終的に音質を評価している提案が良い性能が出た、という結果を得ました。

BLSTMの間にMWFを挟み込む

ごめんなさい、もう1つだけ。先ほどのはlossに空間モデルを入れることでいったんですが、空間モデルをどう考慮するかは別の考え方もあるんじゃないかなと思っています。

今までのDNNの構成の中に空間的なモデルを一種の制約として入れてあげることによって、空間モデルという観点から良い解を求める、そういうこともできるんじゃないかなと思っていまして、そういうことを提案しました。

先ほどご説明したように、このニューラルネットワークベースの方法は、例えばBLSTMを何層か重ねる構成をよくとります。先ほど言ったように、そのBLSTMのレイヤーがEMの1ステップに相当すると解釈できると思うんですが、ただ大きく違うのは、確率モデルでは空間モデルの拘束をかなり明示的に入れていたのに対して、BLSTMはそこが陽には入らないわけです。

つまりどういうことかというと、空間的に同じ場所にあれば、それは同じ音源である、ということが明示的には仮定されないわけです。学習の中でそれをうまく学習できる可能性はもちろんあるわけですが、それが明示的に仮定されていないので、そこにいくかどうかは必ずしも明確ではない、ということです。

ここではBLSTMの間に空間的な制約を考慮したMWFを挟み込むことによって、空間的に意味がある解を学習させる構成をとっています。詳細は省きますが、そういうような空間的な制約を入れる場合と入れない場合を評価すると、入れた場合のほうが良くなったと。

この場合は4つのマイクロフォンを使った系で学習をさせたのが一番上で、それと同じものを8個の場合に使うこともできるようになっていまして、そうすると8個のほうがより空間的な制約が強くなるので、性能差も大きく出ていることがわかると思います。このように構造に情報を持たせることも重要ですね。

まとめと今後の方向性

まとめます。

今日はシグナルモデリングが重要だよ、という観点で話させていただいたつもりです。とくに音源モデルと空間モデルをどうコンバインするかが重要であり、その一つのやり方としてDNNのloss関数に空間モデルの影響を入れる、またはDNNのストラクチャーに空間モデルを入れると。

こういう観点でお話ししたんですが、このへんはますますおもしろくなってくると思っています。信号をモデリングするのは、こういうloss関数、ストラクチャーだけじゃなくて、例えばこれまでの信号モデリングに基づく方法をある意味教師データにすることによって、人が与えた教師データがなくてもDNNがよりうまく学習ができます。こういう方向にも進みつつあるのかな、と思います。

つまりラベリングされたデータセットを用意するのは非常に難しいわけですね。とくに音源分離だと、複数のマイクロフォンで録ったノイジーなデータは手に入りますが、クリーンなデータを例えばラベラーがラベリングして作ることは不可能なわけです。なので、それはシミュレーションなどで作ったりするんですが、実データでは基本的にはラベリングデータは得られません。

じゃあどうするか。いわゆるダークデータ、正解がないデータはたくさんあるんですが、それを使ってなんとかDNNを学習したいということになるわけです。

例えば自然言語処理の分野では、スタンフォードでやっているSnorkelは、ラベルの代わりに人が「どういう規則でラベルを付けるか」というラベリング関数を定義すれば、その関数さえあれば、真のラベルデータがなくてもうまく学習が進むコンセプトでやっていたりするわけです。

そのラベリング関数が、音源分離で言うところの従来型の確率モデルに基づく音源分離に相当すると思っています。つまり従来型のモデリングを、教師データとして使うことによって、DNNの学習がうまくいくということなんですけども。

メカニズム的にはこれはおそらく、従来型の音源分離が「突発的に悪くなるところ」と「平均的に良いところ」があったとすると、突発的に悪くなるところDNNはある意味学習ができないので、平均的に良いところだけうまくとってこれると解釈できるんじゃないかなと思っています。

こういったところが次の方向性としてはあるんじゃないかな、と考えています。以上です。

(会場拍手)

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

LINE株式会社

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!