12/20 パターン認識(2)


補足


試験について


前回の感想,質問より

Q.
アラインメントの判定をギャップ:-2、一致:+1、不一致:-1としているのは、この講義だけ仮に設定しているだけなのだろうかと思った。
A.
はい.アミノ酸配列のアラインメントの場合は,一致不一致の場合もどの組合せかによってスコアを変更するのが普通です.教科書のプログラムでも,関数 q(x, y) と関数g()を取り替えると,別のスコアを用いることが可能になっています.
Q
アラインメントの発想はよくわかったが、一致・不一致・ギャップのそれぞれの重み付けをどうするかが重要かつ難しいところであって、それをどう決めるのだろうか。
A.
扱う問題ごとに重み付けが違いますが,「どう決めるのか」が重要だというのは正しい考察です.計算機上の文字列の類似度を扱う時の,「編集距離」というのは,人間の感じる類似度とマッチするように「適当に」決めることが多いのですが,遺伝子配列,アミノ酸配列などは,DNA変異の生物学的なモデルにもとづき置換行列 (https://en.wikipedia.org/wiki/Substitution_matrix 参照) という形で重み付けしているようですね.
Q.
ruby check.rb ex07.rbを動かすと、alignがパスしたところで必ずフリーズしてしまう。可能性としてalignの書き間違いを疑ったがむしろ、alignの次のtracebackをまだいじっていないためにフリーズしているのかもしれない。
A.
はい.tracebackを修正しないと,align_dp の実行が終わらないため,checkプログラムも止まってしまいます.
Q.
ディープラーニングの話がばっさり割愛されたのは残念だった。手書き文字の認識とか画像のタグ付けとかが当てはまるんだろうか。
A.
ディープラーニングは様々な分野のパターン認識に用いられますが,特に成功を収めているのは,ご指摘のとおり手書き文字の認識や画像のタグ付けなどの問題になります.この章の例のように「似ている」の定義を与えるのではなく,画像と人間による認識結果という対を大量に与えて,同じように認識するような関数を求めるという「教師あり学習 (supervised learning)」の枠組みで用いられることが多いと思います.機械学習自体も大量のデータが入手でき,計算機の能力が向上したこの20年程度は流行っていましたが,「ディープラーニング」は「同じように認識するような関数」として,多層のニューラルネットワークを用いることによって表現力を増すことができました.一方で,学習の難しさや速度が遅いという問題があったのですが,学習アルゴリズムの改良, GPU等による計算速度の向上,大量の教師データが入手可能になったことなどにより,実用になってきています.

前回の課題について


今日の練習,投票


投票システム

vote.rbをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo17を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo17
を済ませてから,
ruby vote.rb 選択肢番号
のように使います.

irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.


テキストの補足


今日の課題


自宅で自習をする人のために

アルゴリズム入門共通資料の中に講義で使うRuby言語の処理系のインストール法があります.