音声」タグアーカイブ

機械学習について思うこと

ブログだけに書くのもいいかなと思っていたのだけれど,やはり文章を書く以上は人の目に触れたほうが良いと思ったので,ブログとQiitaで同時に投稿することにした.どちらもmarkdownでかけるので共有するのも楽だしね.

以下の文章は極めて長いが,お付き合いいただければ幸いである.

機械学習について思うこと

これは私が常日頃思っていることで,もしかしたら私がここで言及しなくてもすでに多くの場所で語られていることもしれない.また,私自身は別にこの分野の専門家ではないので間違ったことを言っているかもしれないが,その場合は意見をいただければと思う.

さて,機械学習,特に深層学習は目覚ましい進歩を遂げたが,この技術はいつも絶対的な保証ができないという問題を抱えている.そしてそれを理由に工学的には利用が難しいと考えられている.この文章ではなぜそのように考えられているのか,そしてそれを解決することが原理的に可能なのかを議論したい.

医療における信頼度

DNNは医用画像の分野でもよく使われている.これは例えば,従来,内視鏡画像やレントゲンなどをもとにガンなどの様々な疾患を発見することが主な目的である.このような仕事は,疾患を見逃せば重篤な問題を引き起こす可能性がある上に,高い精度を求めるためには熟練した医師が必要なため,今までは人間の医師が行ってきた.

しかし,近年注目を浴びているDNNを用いることで,こういった問題を解決する兆しが見えてきている.DNNはタスクによっては人間を超える性能を叩き出しており,特に今まで自動化が難しいと考えられていた,上記のような診断を医師無しでできることは,医師に対する負担が減る上に,経済的にも良いことであると考えられる.

一方で,このような機械学習に基づく診断は,その診断結果が高い識別率を持っていたとしても,その信頼性に疑問が呈されることがある.これは,診断結果が間違っていた場合の危険性を考えると,例え識別率が人間を上回っていたとしても,どうしても不安が残るためだ.そして,可能であれば,理論的に識別結果に対する信頼性を定義することで,診断結果に説得力をもたせられないかという考えに至るようだ.実際に,この話は他の研究室にいる知り合いが,教授から提示された課題の一つである.

さて,ではこのような理論的な裏付けはつけられるだろうか.最初に,これに対する私の考えを述べさせてもらうと,おそらく不可能だと思う.以下ではその理由について説明したい.

そもそも機械学習とはなにか

すでに機械学習は広域な分野を有しており,その目的を一括りに一言で述べることはできない.しかし,医用画像に対する診断のような,教師あり学習に限れば,それは簡単に言うことができる.すなわち,未知の入力が与えられた際に,その予測を得ることである.

多項式回帰の例

これの最も簡単な例は最小二乗法による回帰問題に見えることができる.次の図を見てほしい,
回帰直線.png
今図中で,バツじるしがついているところが与えられたデータ点である.ここで,知りたいことは,データ点が与えられていない\(x\)について,対応する\(y\)を知りたいということである.そしてこのような問題に対して,最小二乗法では,適当な近似曲線(ここでは直線)を引き,これをもとに\(y\)の値を予測する.これは非常に簡単なタスクだが,例えば先ほど説明した医用画像の例も,横軸を画像,縦軸をガンを発症している確率とすれば,やはり近似曲線を引く問題と同じものとみなせる.

さて,上の図はあくまで直線で近似しているため,これでは教師データを真似ることすらできていない.多くの文脈では,ここで直線のような一次式ではなく,より高い次数の次元で近似する.すると例えば,
回帰直線2.png
のような,赤や緑の曲線を得ることもできるだろう.ここで,赤い曲線は教師データをいい感じに通っている感じがするが,緑の曲線はやりすぎ感がある.特にこのようなやりすぎな場合を普通オーバーフィッティングと言ったりする.対して,先程の直線回帰のようなあまり近似できていない場合をアンダーフィッティングという.

機械学習の分野では,このような問題をバイアス・バリアンス分解によって理解することが多い.多項式回帰では,このような高次の多項式を用いることによる振動問題をルンゲ現象と呼び,次数が大きい多項式の微分値が大きくなりやすいことをその理由とする.

さて,そもそもの目的は,この教師データを生み出した”真なる曲線”を予測することだった.今までの例で挙げたこれらの曲線は,この問題を本質的に解決しているのだろうか.答えはわからないである.オーバーフィッティングにしろ,アンダーフィッティングにしろ,それがだめかどうかは,実際に教師データ以外の実データで検証を行う以外にほかはない.

確率的解釈

多項式回帰は簡単だが,そこから多くのものを得られる.例えば多項式は入力データから作られる(例えば\(x\)や\(x^2\)など)が,別に多項式である必要はない.任意の場合に目を向けると実はカーネル法につながっている.加えて,この回帰問題は比較的簡単に確率的な解釈を導入することができる.例えば正規分布を使ってみよう.この場合,\(x\)と\(y\)の関係は,\(\mathcal{N}(y|\mu, \sigma^2)\)とかける.ここで\(\mu\)と\(\sigma\)は\(x\)で与えられることにすれば,確率的な解釈が導入されたことになる.そして,これを応用することでベイズ的な取扱を行うことすら可能となる.しかし,そのような高度な解釈を導入したところで,上記の真の曲線(分布)を予測できているかどうかはわからないのである.

なぜうまくフィッティングしていることが言えないのか

どのようなモデルが与えられたところで,それが真に求めるべき曲線を近似しているかどうかは理論的に知る方法はない.これはなぜなら,データ点がないところについては,我々はなんの知識も用いることができないからだ.

そもそも数学的には,このような回帰曲線を引く問題は,\(x\)が与えられた際に,それらしい出力||(y\)を出す関数\(y=f(x)\)を求めることに等しい.そのような関数は,教師データがない部分に関しては,何を返しても良い.例えば,教師データがある部分については,デルタ関数的に振る舞い,それ以外の部分については恒等的に0であっても何も問題がない.

直感的には,そのような関数ではだめなことはわかるが,では何がどのくらいだめなのかを知るすべはない.いい感じで回帰曲線を引くという意味では,別に多項式回帰を使おうが,カーネル法を用いようが,SVMを利用しようが,DNNに投げようが,どれでもそれらしい曲線が得られるはずである.この手の議論でよく引き合いに出されるのが,あるモデルが任意の関数を近似可能かどうかという問題である.近似できない関数が存在すれば,もしかしたら与えられた教師データを通るような関数を作り出せない可能性がある.したがって,パラメータを十分に増やすことで,任意の関数を表現できることを示すことには一定の価値がある.しかし,任意の関数を近似できることは,今言ったデータがないところを予測することに関しては何も言及していない.

例えば,最も簡単な多項式回帰は数学的には非常に強力なモデルである.というのも,多項式回帰はテイラー展開,もっと言えば複素数空間ではローラン展開であるとみなせる.しかし,ローラン展開はフーリエ級数展開と同等であるので,ほぼ任意の関数を近似できるはずである.しかし,それによって教師データを近似した結果が,良いものであるかどうかについては何も教えてくれない.

DNNがよくわかっていない最大の理由は実はそこにあるのではないかと私は思っている.高い予測性能を叩き出せるということは,言い換えれば,データ点がないところの予測が優れていることにほかならない.しかし,その部分について数学的に妥当性を言うことはできない.機械学習において,あるモデルが優れているかどうかは,究極的には,人間にとって,予測結果がどれほど自然であるかというその一点に集約されるのだ.

もし解決策があるとしたら

私は上記の問題に対して全く解決策がないとは考えていない.ぱっと思いつくだけで2つほど解決策があると考えている.

1.真の正解に制限をつける

フーリエ級数展開を考えよう.フーリエ級数展開は周波数成分に分解するための手法だが,もう一つの捉え方は曲線を近似するための方法でもある.例えばローパスフィルタは低周波成分だけを残すことで,データ点を通る近似曲線を求めているという解釈ができる.実はこのような考えは更に進めると,ウィナーフィルタやカルマンフィルタ,パーティクルフィルタのような話につながっている.

さて,フーリエ級数展開にはサンプリング定理が柱として存在する.これは,現信号の周波数がある特定の範囲までにしか分布していないのであれば,現信号を復元可能であることを保証する.フーリエ級数展開に利用価値があるのは,サンプリング定理によりその理論的背景が存在し,加えて,私達の周りにある多くの信号は,最大周波数がわかっているためである.

このようなサンプリング定理のようなことが,機械学習で用いられるデータに対しても同様に言えるのであれば,理論的な裏付けができるだろう.というのも,予測したいデータがどの範囲まで分布しているのかがわかれば,予測が最悪でどこまで外れているかを定性的に評価できるからだ.しかし,これが解けてしまうと,そもそも過学習のような問題は起きなくなるのではないかという気もするため,もしかしたら解けないのかもしれない.

2.脳を理解する

機械学習で対応しなければならないタスクの多くは,我々人間がその正解を決めていることが多い.例えば,音声認識を考えよう.この場合,入力された音声に対する正解は我々人間が聞いたときの感覚でラベル付をしている.音声合成も同様である.

これは人間にとって自然とは何かがわかれば,正解も自ずと分かることを示唆している.したがって,未だよくわかっていない脳科学が進展すれば,真の正解を知ることができるかもしれない.

しかし,これは極めて茨な道である.この理由の一つは生きている脳細胞をリアルタイムで計測する方法には,どれも問題が多いということである.例えば,脳波を取る方法にしろ,fMRIなどを用いる方法にしろ,大抵は時間的,もしくは空間的分解能が低すぎる.脳の活動が大量の,微小なシナプスやニューロンによって構成されていることを考えれば,現状の計測方法では十分とは言えない.マウスの脳を計測する方法に限れば,侵襲的な計測方法も用いることができる.例えば,電極アレイを脳に挿して電位を図るなどである.しかし,これも拒絶反応が起きるなどの様々な問題を抱えている.現状他に期待されている方法には,マウスの頭蓋骨をガラスに置き換え,光学的な方法で観測する方法も検討されているが,これも完璧とは言えない.

ただ,最近は脳細胞を人工的に作り出すことが可能になりつつあるようなので,そういった方法も使えるかもしれない.

関連する話

機械学習の問題は実は統計で出てくる問題と本質的に変わらない.それは機械学習がそもそも統計学の影響を強く受けているからだろう.統計学で出てくる問題の多くは母集団がわからないことに端を発する.

例えば,偏差値を考えよう.学生にテストを受けさせて採点を行う.採点結果は標本となり,その標本から母集団を予測する.母集団が予測されたら,そこから偏差値を計算する.しかし,実際のところ試験を受けていない学生については,統計は何も教えてくれない.もし,模試によって偏差値を算出したとしても,その模試を受けなかった学生の中に極めて成績の悪い,もしくは良い学生が大量に存在したら,実際の母集団の平均や分散は予測されるものより大きく異なることになるだろう.

では,統計学ではそのような問題をどのように解決するのだろうか.それは要は数の暴力である.統計で現れるt検定やχ二乗検定にしろ,標本による母集団の推定にしろ,十分なサンプル数があれば,確率的にその結果が怪しい可能性が十分に低くなる.逆に言えば,そのような手段でしか統計学では保証するすべがない.それにたとえ十分なサンプル数が存在しても,確率的には万が一を避けられない.この問題が機械学習における限界と同等のものであるように感じられる.

内容についてどう思いますか?
  • いいね (0)
  • だめ (0)

枯れる分野と研究生活

私がまだ小学生や中学生だった頃,未来は非常に明るいもののように感じられた.その頃は自分がおとなになったときに,どんなことをしてるかは漠然としていたけれど,それでも将来の自分に対する夢と希望であふれていたように思う.ところが大学に入り周りの状況を知るに連れて,世の中がそれほど甘いものではないことを徐々に理解していった.

枯れる分野と研究室選択

一応忠告だが,これからする話はあくまで工学部の情報系に限ったことである.他の分野でどうであるかは,その分野によりすぎるところがあるので,参考程度に留めるように.

研究分野には,当然人気がある分野とない分野がある.今の流れで言えば,人気がある分野は,例えば画像や音声などのマルチメディア系であり,人気がない分野は例えばプログラミングの型システムや,デバイス系などだろうか.実はこういった画像系や音声系などの人気のある分野は,重箱の隅をつつくような地味な研究テーマを扱っていることが多い.今でこそディープラーニングで賑わっているものの,それより少し前はやることに意味があまり見いだせないようなことをやっていることが多々あった.これは,人気があればあるほど研究が進んでしまうために,やり尽くされてしまう傾向があるためだ.アカデミックの世界では既存研究がすでに存在することはやっても意味がないとみなされるため,分野が発展にするに連れてどうしても苦しくなる.そして苦しくなれば苦しくなるほど,重箱の隅をつつくような研究が増えていく.こういった研究は,大抵の場合,やってる側としてもつまらない事が多く,またつまらない研究はインパクトも大したものではないことがほとんどである.しかし,こういった状況はよほどの革新がない限り改善されることはないため,ジリ貧状態は悪化する一方だ.もしジリ貧状態から本当に脱却したいのであれば,異なる分野にシフトするかない.

大学の学部生の段階では,上記のような,分野によってはやることがないくらい堀尽くされていることがあることをよく知らないため,研究室選びのときに,単に面白そうという理由だけで選択することになる.面白くなさそうな分野をやるのは,苦痛にしかならないことがあるため,当然,面白そうな分野を選択するべきなのだが,だからといって本当に面白いことができるかどうかは別問題である.実のところ,入るべき研究室とは,
– 分野が枯れておらず
– 先生が人としてまともで
– それなりに興味が持てる分野
という三拍子を揃えているところをいう.そして,当たり前だが,この3つの要素を満たしている研究室というのは一握りしかない.それ以外の大多数の研究室は,致命的な問題を多く抱えているのが実情なのだ.特に,その先,研究者として生きていくことを考えているのであれば,トップカンファレンスや高インパクトファクターのジャーナルに論文を通していることも重要となってくる.しかし,今の時代,流行に乗った分野かつ,まともな指導教官などそうそういるはずもなく,理想とは一転して暗い研究室生活を経験するのは理系大学ではありふれたことである.

完璧とは絶望だヨ。

サブタイのセリフを知っている人は多いだろう.これはBLEACHの涅マユリの有名なセリフの一つだ.BLEACHの作者である久保帯人が科学についての知識があるとは思えないが,この「完璧とは絶望だヨ。」は科学のある側面を絶妙に捉えている.分野にもよるだろうが,特に工学は人にとっての利便性が最も重要視されるため,研究が進むに連れ,ほとんど完璧とでも言える状態になってしまう事がある.そうなると,研究する意味がほぼ皆無になってしまい,その分野で食っていくのが絶望的な状態になってしまう.例えば,通信路における符号理論,ネットワークセキュリティ,回路設計における論理回路や回路アーキテクチャの研究は大部分がやり尽くされた感があるように思う.加えて,世の中がこれほど便利になったのは,様々な分野が彫り尽くされたことの裏返しなのだから,上に上げた以外にも多くの分野がやり尽くされてしまっているのではなかろうか.

実は物理学の分野でも,このように言われた負の時代があったようだ.大昔,ギブスという有名な物理学者がちょうど学生だった頃,物理学では,まだ量子力学と相対性理論が知られておらず,すべての事象はニュートン力学で書き表されると考えられていた.ニュートン力学では,初期状態として位置と運動量(速度)が与えられれば,あらゆる物体の挙動が一意に定まるという性質がある.そのため,当時はラプラスの悪魔という,世界は実は生まれた直後から将来どうなるのかが全て決まっているという考えに支配されていた.そのため,物理学をそれ以上,研究することに意味があるとは考えられておらず,当時成績優秀であったギブズが物理を専攻した際には,周りに物理学なんてやめたほうがいいと促されたという話が残っている.しかし,その後すぐに相対性理論と量子力学が主にアインシュタインやボーアによって切り開かれることで,そんな負の時代から一転,黄金時代に移り変わったのだから皮肉なものである.

企業で働くという考え

すでに述べたとおり,面白そうなことほど研究が進むため,現状残っている研究課題が面白い内容である保証はまったくない.特にお金になる分野は,企業が一気に投資して研究を進めるため,大学の研究者はジリ貧になりやすい傾向がある.

数学の分野では世の中の問題がすべて解かれることはないことを次のように説明する.すなわち,今の世界に残された問題の数は明らかに加算無限個存在するが,人間がいくら頑張っても永遠にとき続けることは不可能であり,したがって,世の中のすべての問題がとき終わることはない.これは確かに数学では真だろうが,他の分野ではおそらくそうではない.どうしても先行研究があると論文にならないという性質上,ジリ貧になってしまうものである.

面白いことがしたいのであれば,あえて研究者になるという道を選ぶ必要はない.もっと手っ取り早く面白いことをする方法として,企業で働くという選択肢もある.大企業に行ってしまったら,面白いことをするという目的はほとんど叶えられそうにないが,ベンチャーや起業などを行えば,比較的望み通りの結末が得られるのではないかと思う.

内容についてどう思いますか?
  • いいね (5)
  • だめ (0)

やりたいこと

やりたいと思っていることがいくつかある.箇条書きにすると

  • FPGAのCPU実装をもっと頑張る(具体的にはUnix系OSを動かす)
  • Rustをやる(できれば研究とかバイトのコードも徐々に移行したい)
  • 日本語力を上げる
  • もっといろんなことを勉強する(暗号,音声,機械学習,etc)

のような感じ.別に最後のやつは普段のタスクの中に自然と組み込まれている感じなのであまり意識する必要はないだろうけど,上から2つは個人的に時間を作ってやらないとできるとは思えない.3つ目は文章が下手くそなのでうまくなりたいなということ(願望).

FPGAのやつはできればCPUの実装のコード(verilog)をきれいにしたというのもある.研修Aという研究室の自由課題でやったものだから,締切に合わせて結構その場しのぎでやってしまった感があって,それをどうにかしないと次に進む上で障害になりそう.かと言ってあれってそんな簡単に直せるとは思えない… 抜本的に書き直す羽目になりそう.そもそもverilogってアセンブリに近いものがあって全然きれいに書けてる自信がわかないんだけどどうすりゃいいんだろう.高位合成とかと違って結構低レイヤだから記述量が多くなりがちなのが影響して,とてもじゃないけど見やすくならない.あれも結局経験値で決まってくるやつなんだろうな.

Rustについて言えば,とにかく実践で使っていくしかないだろうなって思ってる.入門書とか初心者向けの記事とかをただ追って読んでるだけだと全然頭に入ってこないたちなので,実際に使って鍛えていくしかない.自分もそんなに詳しいわけじゃないんであれだけど,c言語とかc++みたいなシステム周りとか結構低いレイヤのプログラミング言語って,D言語とか他にもあるんだろうけど結局のところc言語 or C++がデファクトスタンダードって感じがあるように思う(マイコンとかの開発環境でC++/C以外の言語を使う場面ってなくはないけど少ない気がする).LLだとか関数型言語とかだと選択肢がありすぎるくらいにはあるのに,低レイヤ向けの,アセンブリより抽象度が一つ上なメジャーな高級言語ってのが,もう何十年も前に発明されたCとかC++のまま変わってないってのは,あまりに時代遅れな感じがする.と言いながらもう10年近くCだとかC++を書いてきた人間がこんなことを言うのは説得力にかけるのかもしれないけど,流石に限界というかこのあたりにもイノベーションがあってもいいよねってのは薄々思っていたところ.確かにC++は最近になってC++14とかC++17とか新しくなってきてるけど,もともと難解だったC++に更に付け足しつけたしで色々くっつけたもんだから複雑怪奇になって来てて,「C++を理解してます」ってのがジョークになるという笑うにも笑えない状態になってる.

だから流石にそろそろ新しくそういうシステム周りもかける言語を習得したいなと思ってたわけだけど,ちょうどMozillaがRustを開発してるという話を知って,これは良さそうと感じた.最近はライブラリも結構充実してきてて特に問題もなさそう.他に最近話題のコンパイルするような静的型付け言語としてはGoとかもあるけど,あれはポインタを叩くような処理をするというよりは,コンパイルできるLLみたいなイメージが有る.Google的には速度が出るLLが作りたかったってことなんかなという印象(素人目線).個人的にはやっぱりLLとシステム記述向けの言語って住み分けができてると思ってて,前者が簡単にかける代わりに詳細な記述をしたり速度を出したりすることが難しいもので,後者がその反対という感じ.よくGoとRustを対比させる記事を見るけど,それはこの2つがちょうどLLとシステム記述向け言語の間くらいに位置する言語だからということなんだろうな.ただGoはどちらかと言えばLL寄りで,Rustがシステム記述向けよりなんだろうと思うし,だからこの2つは用途が衝突するところもあるけど,全くかぶらないところもあるんだと思ってる.

確かにLLって半端じゃないくらいに遅いから早くしたいと思う人が多いのは当然だよね.pythonくらいしか経験がないけど,それでもC++なら一瞬で終わる処理が半端じゃないくらいに時間かかったりするのを見て,何とも言えない感じなることはある.プログラミング界隈で有名な話?に80:20則ってのがあって,プログラム全体の20%が実行時間の80%を占めてるって経験則なんだけれど,LLの哲学的には,重い20%のコードをCとかにまかせて,速度がでなくても大丈夫な80%ところをLLでどうにかするって話だったんだと思う.確かにそれは合理的に見えるし,全部を無駄に書くのが大変な言語で修行のごとく記述していくのは意味がないってのは大いに賛同するところなんだけど,現実はやっぱりなかなか厳しいものがあって,そう簡単じゃない.実際に使ってみると,LLがおそくてその80%が馬鹿みたいに大きくなったりして,僕の書き方が悪いってのはあるんだろうけど,なんだかなーって結果になることも往々にしてある.そんなこんなあって,みんな早いLLを求めてたんだろうから,Goみたいな言語が出て来たんだろうなという予想.本当のところどういうことなのかはGoを勉強しないとわからないけど,今のところGoが重要そうなWeb界隈の方には全く関わりがないので,実用的な観点でやることはなさそう.

とまあ前置きが長くなったけどRustを勉強したいなと思ってる.関数型言語の流れを受けて色々と拡張があるみたいだし,加えてC++とかと比べて安全だと言われればやらない理由も特にない.速度も結構早いみたいだしね.

ということで今年度も頑張っていきたいと思います.

内容についてどう思いますか?
  • いいね (2)
  • だめ (1)

BoWで音を鳴らす

Windowsの次の大型アップデートはCreators Updateというらしい.このCreators Updateでは様々な変更がなされているらしいが,今回注目したいのはBash on Windows(BoW)である.今までは日本語が不自然に切れてしまったり,ちょっとしたことで落ちてしまったりと微妙な感じだったが,今回のアップデートでは随分完成度が高くなるとのことである.

この新しいBoWがどの程度の完成度なのか非常に気になったので,試しに最新のビルド(番号は忘れた)をインストールして試してみることにした.インストールした直後はなぜかWindowsが不審な動きをして,非常に焦ったが時間が立つと勝手に治っていつもどおりの状態になった(よくわからない).次にBoWを起動して使ってみると,確かに今までと比べて色んな所が改善されており,これならある程度常用に耐えられるかもしれないと感じるまでになっていた.しかし,残念ながら音を流すことができない.私としては音声ファイルを再生して確認したい場面が多いため,これは非常に困る(音声関係もやっているので).そこでどうにか音を流す方法を調べたところ発見できたので備忘録として残しておこうと思う.

まずlinuxで音を流すといえばpulse audioを使うのが標準的だろう.ただしBoWはホストのオーディオデバイスを叩くことができない.そこでネットワーク経由でデータをホスト側に転送する方法が考えられる.具体的にはWindows用のpulse audioサーバを用意し,そこにBoW側のpulse audioを接続する形だ.この方法であればネットワークつながっていさえすれば音を流せるはずである.ここではその設定の詳細は次のサイトを参考にした.

http://nishio.hateblo.jp/entry/20111215/1323962652

さてこれに合わせて設定を行ったわけだが,残念ながらうまくいかない.

どうやら内部のpulseaudio側でクラッシュしているようだ.これをどうにか解決したいところである.そこでgoogleで調べると次のURIを発見した.

https://github.com/Microsoft/BashOnWindows/issues/486

これに従えばpulseaudioのソースコードを修正することで起動させることができるらしい.そこでまずはpulseaudioのソースコードをgitを使って手に入れる.

つぎにsrc/pulsecore/mutex_posix.hを編集し,23行目あたりを次のように編集する.

これで./autogen.shと言いたいところだが,実行したところ私の環境ではエラーが出てしまった.どうやらlibtoolのバージョンに伴うエラーのようだが,そもそも必要なバージョンより新しいものが入っているのでこれはおかしい.そこでこの部分をコメントアウトした(もっといい解決方法がある気がする…).具体的にはconfigureの10206行目にある

の部分である.コメントアウトできたら./autogen.shをする.もしエラーが出たら,基本的にパッケージ絡みのエラーだと思われるので必要なパッケージをインストールしまくる.必要なパッケージはエラーメッセージで検索すればわかるだろう../autogen.shが成功したら,次に下記のコマンドを打ち込む.

これでインストールは終了である.

さてここまでやって先程と同様にvlcを起動してもうまくいかない.なぜならvlc側でロードされる動的ライブラリはあくまで標準ライブラリのpulse audioのものであって,今回用意したものではないからだ.そこで次の環境変数を設定することで動的ライブラリをすり替える.

これをした後にvlcを利用するとうまくいくことが確認できる.めでたしめでたし.

 

内容についてどう思いますか?
  • いいね (0)
  • だめ (0)