"機械学習","信号解析","ディープラーニング"の勉強

HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学などをテーマに扱っていきます

機械学習・信号処理・制御工学について関連性も踏まえて

 

 

機械学習・信号処理・制御工学はそれぞれ重なってくる部分も多く、これらの関係性を把握しておけば、互いに異なった分野で蓄えられた知見を上手く使って問題解決に活かされるかもしれません。

将棋のような探索を応用する分野では、最適制御の知見を使いBonanzaという当時驚異的な強さを誇ったソフトが開発されました。また信号処理では信号の推定を行うフィルタの設計が行われますが、カルマンフィルタと呼ばれる制御工学応用されているオブザーバーは、まさに信号処理の考え方そのものです。機械学習の手法であるニューラルネットワークは、線形システムを中心に数学的な考察によって設計を行っていた信号処理や制御工学の分野に、新たな解決方法を与えました。

互いが互いに影響を及ぼしあいながら、しかし見てみると根本的に同じであるような概念も多数見られます。これらの把握をしていると、勉強がより面白く、理解が深まるものだと思います。

 

 

それぞれの分野について

機械学習

人工知能の研究分野の1つで、人間が行っている学習なる能力を如何に実現するかを研究しています。主にたくさんのデータから規則を見出し、その規則を使って新たなデータに対する判断や予測をする方法を考えます。

例えばスパムメールを自動で弾き出すためには、まず普通のメールとスパムメールを集め、それぞれの特徴を学習させます。そして新たに得られたメールがどちらであるのかを分類するようにします。

他にも様々な問題設定が考えられますが、たくさんの種類の問題に対しても汎用的に使える手法の研究が人工知能の達成という観点からは重要になるでしょう。もちろん個々の問題に特化した機械学習の手法を提案することも、応用上重要なことになります。

 

信号処理

信号処理は、数学的な手続きによって信号を加工する方法を考えます。

例えば音声信号などにはどうしてもノイズが生じてくることでしょう。ここからノイズのみを除去するにはどのような数学的手続きを取ればいいでしょうか。音声は様々な波の集まりですから、この波について詳しく知ることができれば手掛かりが得られそうです。ですから、信号処理の基本的なツールは、信号を波の和に分解するフーリエ変換です。これにより色々な周波数の波の集まりとして信号を捉えられます。ノイズだと思われる周波数が分かっていれば、その周波数を取ってしまうバンドカットフィルタなどが応用されます。

信号に対する詳細を知らなくとも、統計的な解析をすることで、ノイズの特性を知ることも可能です。特にこのような分野は不規則信号処理とか統計的信号処理と呼ばれます。

 

制御工学

制御工学は、対象を思い通りに動かすことが目標です。

蒸気機関のように、燃料を燃やし、その燃え具合によってタービンの動作具合が変わり、その動作具合によって蒸気機関の速さも変わることでしょう。しかし、これら個々についてそれぞれ適切に操作しても、上手く動作しないということが起こってきました。対象が大規模になるにつれ、個々の問題を個別に考えるのではなく、1つのシステムとして捉えなければならなくなりました。

制御工学ではシステムを微分方程式で記述し、システムの振る舞いはその微分方程式の解となって現れます。従ってシステムを思い通りに動かすことは、微分方程式の解を好きなように操作することに対応します。つまり微分方程式をどのように変更すべきか(つまりどんな入力を与えてやるべきか)を考えねばなりません。そこで、微分方程式を簡便に取り扱えるラプラス変換や、高階微分方程式を1階連立微分方程式としてみる状態方程式などが使われます。

システムにどのような変更を加えるべきかは通常、システムの動作状況によって刻一刻と変化するはずです。ですから、システムの状態を監視する物理的なセンサーを必要とします。センサー設置が困難な場合にはオブザーバーにより数学的に状態を観測し、その観測結果を制御に活かします。

またシステム自体がよくわからない場合は、とりあえず動かしてみて実験データを集め、システムがどのように記述されるべきかを把握するシステム同定を行う必要があります。

 

推定の必要性

どの分野も推定という概念が必要になってきます。

機械学習ならばデータから規則を推定しなければなりません。信号処理ならば観測信号からノイズや本来の信号を推定しなければなりません。制御工学ならばシステムの状態やシステムの構成そのものを推定しなければなりません。それぞれの分野で目的は違えど、推定をいかに上手く行うかについて研究がなされてきたのです。

 

機械学習における推定

機械学習では、データの規則に相当するものは、例えば回帰のための係数や、確率分布と捉えた場合には分散や平均などになります。これらを正しく推定できて初めて予測や判別に活かすことができます。

また直接判別を行うための関数を推定してしまう場合もありますが、この場合にもその都合の良い関数をデータから推定しなければなりません。

 

信号処理における推定

信号には大抵の場合、本来観測したかったもの以外にノイズが混じっているものです。このノイズを適切に取り除く際に、周波数の情報がない場合は統計的処理をするしかありません。

またノイズではなく、観測したい複数の信号が、いろいろな割合で混じって複数のセンサーに拾われた場合に、それぞれどのような配合で混じってしまっているのかを推定する問題などもあります。

 

制御工学における推定

システムの制御をする前に、システムがそもそもどんなものであるのかを知らなければなりません。適当に値を入力してみて、どのような出力が得られるのかをたくさん繰り返してみれば、何かしらの法則性が見えてくるはずです。つまり入力に対してどのような変換が施されたのかを推定するのです。

また実際に制御をする際に、システムの内部状態に応じて制御も刻一刻と変えねばなりません。知りたいシステムの内部状態は物理的に観測できるとは限らないため、これを観測できる他の値から推定しなければなりません。

 

 類似点と相違点

推定の必要性があるために、3分野とも似通ったテーマが存在します。

機械学習における「学習」、信号処理における「信号推定」、制御工学における「システム同定」では共通して何らかのパラメータを推定しようとします。しかし、共通点は多いものの、別の分野としてそれぞれ発達してきたのには、問題設定や問題に対する考え方の相違があったためです。

 

機械学習では人工知能を達成する目標から、いかなるアルゴリズムによって学習成果を出すのかが問題です。学習の手法自体は、応用上、我々の脳と同じ処理をしている必要もなければ、それぞれのパラメータに物理的意義を見出す必要もありません。大事なのは、素早く正確に学習・予測ができるということなのです。近年は、そのような学習を達成するために脳の模倣をする動きがあり、神経科学との連携も期待されますが、本来の機械学習の姿勢は応用上の便利であることが大事でした。

 

信号処理では、大抵の場合扱う信号は時系列データです。つまりデータ点の順番にちゃんと意味があるのです。アンケート調査の結果は送られてきた順にしておく必要はありません。しかし、音の信号や動画などは、その信号の入力される順番が大事な部分なのです。つまり時間軸そのものが重要な情報を持っており、時間周波数解析などの手法が発達しました。予測を行うカルマンフィルタなども、その状態変数や機械学習でいう隠れ変数などにも物理的意味があります。物理的な方程式に基づいて、フィルタの変数を構成しているのです。

 

制御工学は微分方程式を元に制御対象を操作しようと試みるため、この分野で最も数学チックだと言えます。システム同定は入力と出力のセットから変換を推定する問題として、制御問題は関数(あるいは微分方程式)が分かっているときに任意の目標値に近づけるためのフィードバック入力を見つける問題として見ることができます。問題としては信号推定や機械学習とかなり毛色が違いますが、システム同定は回帰のようなもので、制御問題はリカレントネットワークの振る舞いをフィードバックの部分のみによって任意に操作できるかという問題として見れます。

 

 

問題設定を似せようと思えば似せられますが、やはり相違点はあって、信号処理や制御工学では、変換自体が時間軸での操作を伴います。時間遅れ位相遅れとか表現されるものです。またシステムの多くは出力が入力にフィードバックされているなどの、グラフィカル表現では複雑な様相をしています。一方で機械学習のグラフィカル表現はフィードフォワードニューラルネットが基本で、フィードバックがあるリカレントネットが応用され始めたのは最近です。また制御工学や信号処理は、数学的な操作の妥当性が出発点にある印象です。一方で機械学習は、ある目的を達成する操作が偶然にもこういう数学的操作であったというケースが多いです。

 

信号処理や制御工学は、その処理の途中段階で何が起こっているのかの評価も行えます。その変数には物理的な意味がある場合が多い上に、途中段階を観測するためのオブザーバの理論なども一般的に浸透しています。機械学習では処理の途中段階にはあまり興味がなく、結果が上手く行くかが全てであるケースが多いです。上手く行った手法に関して、その力学系があとから研究されることのほうが多い上に、そのような研究は応用に比べマイナーな印象です。

このように書いていると、機械学習にネガティブな印象を持つかもしれませんが、このような姿勢であったからこそ、実用上の利点を考え、ここまで受けいられるようになったのだと思います。

 

また制御工学や信号処理では数学的な議論を行うために、線形システムの理論が特に発達しています。一方で機械学習は非線形の問題にぶつかった直後から解決策を考案してきました。

また機械学習は、統計的視点が強いために、確率分布から考えることであるデータの生成を自然と非線形に取り扱うことができます。信号処理の中でも統計的信号処理の分野ではほとんど機械学習とやっていることは変わりありません。制御工学は確率を取り扱う際にも、微分方程式やブラウン運動から考えて、完全にシステムを記述することを意識しており、かなり種類が違うように見えます(理論に寄り過ぎか?)。しかしカルマンフィルタは実は、確率システムの理論によって生まれ、線形システムの理論に逆輸入されたものですから、成果が無いわけでもありません。

 

どの考えが正しく、どれが優れているのかというのを決めるのは難しい問題ですし、そもそも決めなくてもいいでしょう(立場によって異なるはずですし)。

少なくともある分野の専門性を高める一方で周辺分野の基礎的な周辺知識をためておくと視野が広がるように思います。自分が今勉強している手法の、本当の強みというのも、周りの方法と比較することで見えてくるはずです。