2008 - 東京工業大学附属科学技術高等学校

課題研究発表
要旨集
1
エージェントプログラムの研究
2
ペイントツールの製作
3
音声の特徴抽出と比較
4
群知能のアリゴリズムの研究
5
音声入力電卓ソフトの開発
6
インタプリタの製作
7
マ ル チ プ ラ ッ ト フ ォ ー ム 対 応 P2P フ ァ イ ル 共 有 ソ フ ト の 開 発
平 成 20 年 10 月 2 日
東京工業大学附属科学技術高等学校
情報システム分野
P 1
課題名
エージェントプログラムの研究
発表者氏名
厚地祐輝
指導教員
西澤吉郎
増田憲
水野正路
背景・目的
私たちは,意思を持った一つひとつのプログラムが相互に作用し,組織的な行動を行う
マ ル チ エ ー ジ ェ ン ト シ ス テ ム に 興 味 を 持 っ た 。そ こ で ,2050 年 ま で に ロ ボ ッ ト の サ ッ カ ー
チームが人間の世界チャンピオンに勝つということを目標に開始されたプロジェクトであ
るロボカップサッカーのシミュレーションリーグを題材として,エージェントプログラム
の研究を行った。
理論
ロ ボ カ ッ プ サ ッ カ ー に お け る フ ォ ー メ ー シ ョ ン ,ス タ ミ ナ ,ト ラ ッ プ に つ い て 説 明 す る 。
実 世 界 の フ ォ ー メ ー シ ョ ン と は 異 な る ,図 1 の フ ォ ー メ ー シ ョ ン を 考 え た 。こ れ は ,セ
ンターに多くの人数を割くことによりカバーリング をしやすくし,ボールチェックを早く
するという長所がある。しかし短所として,サイドで数的不利になりやすいことや選手の
距離が近いためにプレーエリアが狭くなりやすいことが挙げられる。
図 1 の フ ォ ー メ ー シ ョ ン を 基 本 と し ,ボ ー ル を 中 心 と し た 相 対 的
なポジションをとるようにする。そして,自分がボールに一番近い
選 手 で あ れ ば ボ ー ル へ 向 か う 。 こ こ で , 自 分 と 味 方 と の 距 離 を a,
図 1
4-4-2 オ リ ジ ナ ル
自 分 と ボ ー ル と の 距 離 を b, 自 分 か ら み て 味 方 と ボ ー ル の な す 角 が θ で あ る と き , 味 方 と
ボールとの距離 c を余弦定理を用いてあらわすと,
2
2
2
c =a +b - 2abcosθ
・・・式 1
である。距離 a と距離 c を比較することでボールへ向かうかの判断ができる。
スタミナは,選手の移動速度を決定するダッシュの実行効率の値に反比例し, 1 ステッ
プ毎に回復力の値によって回復される。
ト ラ ッ プ す る た め に は ,ボ ー ル の 速 度 と 速 度 減 尐 率 か ら ボ ー ル の 予 測 位 置 を 求 め ,選 手
はその位置へ移動する。その後,選手が認識可能な単位時間(ステップ数)とトラップ後
にボールをおきたい場所までの距離から,どのくらいの強さでボールを蹴るべきかを求め
て 実 行 す れ ば , 実 現 で き る 。 ボ ー ル の 速 度 減 尐 率 を dec, あ る ス テ ッ プ 数 で ボ ー ル が 移 動
す る 距 離 を disb,ス テ ッ プ 数 を step と お く と ,1 ス テ ッ プ 後 の 速 さ は 現 在 の 速 度 ×加 速 度
P /
P 2
( 速 度 減 尐 率 ) と な る の で , disb は 公 比 dec, 項 数 step, 初 項 ( 初 速 度 ) を 1 と す る と ,
等比数列の和の公式を用いて あらわすと,
step
1-dec
disb=
1-dec
・・・式 2
である。よってボールの予測位置は,この値を用いて 求められる。
方法と結果
言 語 は , ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ 機 能 と ス レ ッ ド 並 列 動 作 機 能 に 優 れ る Java 言 語
用いる。プログラムを実行し,一人ひとりの選手をサーバへと接続させ,その結果をモニ
タで確認し,改良を進める。通信の手順を図 2 に示す。
ロボカップサッカーは,常に状況が変わるため,サーバへ接続するための通信プロトコ
ルは,相手の応答を待たずに通信
可 能 な UDP 通 信 と し た 。
当 初 ,全 選 手 が ボ ー ル へ と 集 ま
(
エ
ー
ジ
ェ
ン
ト
)
サ
ッ
カ
ー
ク
ラ
イ
ア
ン
ト
UDP/IP 通 信
サ
ッ
カ
ー
サ
ー
バ
サ
ッ
カ
ー
モ
ニ
タ
ってしまう団子サッカーの状態で
あったが,これはポジションの改
図 2
通信手順
良を行うことで改善できた。また,各選手のスタミナをポジションにおける役割に適する
ように設定した。
考察
選 手 が 全 体 と し て ボ ー ル に 寄 り す ぎ る 問 題 が あ る 。し か し ,ボ ー ル か ら の 距 離 を 遠 め に
設定しすぎると,相手にボールを自由に回されてしまう。したがってこの間で適切な距離
を見つけていく必要があると考えられる。加えて,攻守どちらであるかによってこの適切
な距離を変える必要もある。
ま た ,予 期 せ ぬ 方 向 へ 蹴 り だ す こ と が あ る の で ,自 分 の い る 場 所 や 周 囲 の 状 況 に よ っ て
キックの方向や力を細かく変更する必要があると考えられる。
パ ス 回 し は ,蹴 っ た ボ ー ル を パ ス 相 手 が 確 実 に 認 識 し プ レ ー す る と は 限 ら な い が ,こ れ
は首を振るなどで改善できるのではないかと考えている。
参考文献
1 ) 高 橋 友 一 ・ 伊 藤 暢 浩 著 : Robocup で 始 め る エ ー ジ ェ ン ト プ ロ グ ラ ム , 共 立 出 版
2 ) 大 島 真 樹 著 : Java で つ く る Robocup サ ッ カ ー 選 手 プ ロ グ ラ ム , 森 北 出 版
3 ) Robocup 日 本 委 員 会 公 式 ホ ー ム ペ ー ジ : http://www.robocup.or.jp/
P /
P 3
課題名
ペイントツールの製作
発表者氏名
川上森大
指導教員
近藤千香
福田友春
松浦佑樹
望月隆秀
背景・目的
今 ま で 学 習 し て き た プ ロ グ ラ ム 技 術 を 活 か し ,自 分 達 が 使 い や す い オ リ ジ ナ ル の ペ イ ン
トツールを製作する。また,この製作を通して内部処理の方法や原理を学んでいく。
理論
自 作 ペ イ ン ト ツ ー ル の 処 理 の 大 ま か な 流 れ を 図 1に 示 す 。
我 々 は , Windowsに 付 属 し て い る MSペ イ ン ト を 目 標 と し
た。この時,主に使用した関数を表1に示す。また表1
に示した他に自作関数をいくつか取り入れて製作した。
な お 今 回 の 製 作 に は Visual C# 2008を 使 っ た 。 Visual C#
はユーザインターフェースの開発がしやすく,描画関数が
元から付属しているのでペイントツールの製作に適して
いる。
表1 主に使用した関数や機能
図1
処理の流れ
関数名
MouseDown
MouseMove
MouseUp
Click
CheckedChanged
ToolStripMenuItem
OpenFileDialog
SaveFileDialog
ColorDialog
KeyDown
PictureBox
説明
マ ウ ス が 押 さ れ た と き の 処 理 。 押 さ れ た 部 分 の x, y座 標 を 記 録 す る
マ ウ ス が 押 さ れ た 状 態 で 動 い た と き の 処 理 。 x, y座 標 を 記 録 す る
PicutureBox内 で 押 さ れ た マ ウ ス が 離 さ れ た と き の 処 理
マウスがクリックされたときの処理
ラジオボタンやチェックボックスなどでチェックが入ったとき処理
メニューバーがクリックされたときにそれに応じた処理をする
指定したファイルを開く関数
指定した名前で保存する関数
色を取得する関数
キーボードを押したときに動作する
Windowsフ ォ ー ム 用 の 画 像 フ ァ イ ル や Web上 の 画 像 を 表 示 す る も の
RadioButton
ラジオボタン
方法と結果
自 作 し た ペ イ ン ト ツ ー ル の 現 段 階 で の 実 行 結 果 ,な ら び に 使 用 例 を 図 2に 示 す 。図 2の 結
果 よ り ,ペ イ ン ト と し て の 基 本 的 な 機 能 が 確 認 で き る 。ま た ,他 の ペ イ ン ト ツ ー ル (GIMP,
Paint.Net, MSペ イ ン ト )と の CPU使 用 率 を 比 較 し 検 証 し た 結 果 を 表 2に 示 す 。 な お , こ の と
P /
P 4
きのパソコンは同一の物とした。
GIMPや Paint.Netは 起 動 に 時 間 が か か る も の の , そ の 後 の
動 作 は 安 定 し て い た 。 そ れ に 対 し MSペ イ ン ト の 起 動 時 間 は
大変早く,その後も安定していた。それに対し,自作 ペイ
ン ト ツ ー ル は MSペ イ ン ト に は 劣 る が , 他 の ソ フ ト と 比 べ て
起 動 は 早 い 。ま た ,自 作 し た 処 理 機 能 の CPU使 用 率 も 安 定 し
て い る 。 し か し , 解 像 度 の 高 い 画 像 を 処 理 す る と き の CPU
図 2
使用例
使 用 率 が 高 め に な っ て い る 。ま た 自 作 ペ イ ン ト ツ ー ル は 画 像 保 存 時 に サ イ ズ が 膨 れ る バ グ
が あ る 。 こ の 原 因 を 調 べ る に あ た っ て , 1*1~ 5*5ピ ク セ ル の bmpを 作 成 し て み た と こ ろ ,
4*4で 異 常 が 出 た 。 そ の 後 , 4*3と 3*4の bmpを 作 っ て 比 較 し て み た と こ ろ 4*3に バ グ が 見 ら
れた。
表2
ペ イ ン ト ツ ー ル 使 用 時 に お け る 動 作 内 容 と CPU使 用 率
起 動 時 (時 間 )
画像読込み時
400*300の bmpに 描 画
1024*768の bmpに 描 画
GIMP
30%(12秒 )
30%
15%
15%
Paint.NET
10%(10秒 )
10%
10%
10%
自作
10%(4秒 )
3%
15%
65%
MSペ イ ン ト
3%(1秒 )
2%
3%
3%
考察
表 2 よ り , 画 像 の 解 像 度 が 高 く な る に つ れ て CPU負 荷 が 増 し て い る 。 こ の 原 因 は ,
PictureBoxの 画 像 を 再 描 画 す る と き に ,毎 回 画 像 全 体 を 再 描 画 し て い る か ら だ と 思 わ れ る 。
自 作 ペ イ ン ト ツ ー ル を 用 い て 画 像 を bmp形 式 で 保 存 す る 際 に , フ ァ イ ル に 余 分 な デ ー タ
が 保 存 さ れ て い る 原 因 は , SaveFileDialogだ と 思 わ れ る 。
現 在 我 々 が 作 っ た ペ イ ン ト ツ ー ル は , ペ イ ン ト と し て 基 本 的 な 機 能 を 満 た し て い る 。さ
ら に ,当 初 目 標 に し て い た MSペ イ ン ト の 機 能 に 加 え ,ペ ン の 太 さ や 画 像 拡 大 率 を 数 値 で 細
かく設定できる ようになって いる。今後は レ イヤー ,ブラシ機能 の追加,明る さやコント
ラストの調整機能なども検討していく予定である。
参考文献
NET Framework プ ロ グ ラ ミ ン グ テ ク ニ ッ ク for Visual Basic/C# Vol.5 グ ラ フ ィ ッ ク & イ
メ ー ジ (I) C#編
著者
北山 洋幸
出版日付
2007年 12月 10日 出 版 社 カ ッ ト シ ス テ ム
P /
P 5
課題名
音声の特徴抽出と比較
発表者氏名
井尻裕也
指導教員
石川幸治
浦野千尋
大野悠人
鈴木康平
星祐輝
横山翔一
背景・目的
顔 写 真 を も と に ,そ の 顔 が ど の 芸 能 人 に 似 て い る か 判 定 し て く れ る ウ ェ ブ サ イ ト が 流 行
した。これの声版ができたら面白いなと思ったことから,声を比較することによってその
声が誰のものか判断するプログラムを制作することにした。
理論
大 方 の 手 順 と し て は ,録 音 し た 音 声 を FFT(Fast Fourier Transform: 高 速 フ ー リ エ 変 換 )
によって周波数成分を調べ,それを時系列で並べ,比較を行った。
フ ー リ エ 変 換 と は , 周 波 数 成 分 の 大 き さ を 求 め る も の で あ る 。 式 (1 )で 表 わ さ れ る 正 弦
波 ,余 弦 波 と そ の 整 数 倍 の 波 の 合 成 波 (フ ー リ エ 級 数 )と ,式 (2 ),式 (3 )の 係 数 の 値 を , 複
素 数 表 示 し , 周 期 , 非 周 期 関 係 な く 用 い る た め に , 周 期 を 無 限 と し て 考 え , 式 (4 ) の よ う
にした。これをデジタルで行う際に,計算順序の工夫により計算量を大幅に減尐させ,計
算 が 早 く で き る よ う に し た も の を FFT と 呼 ぶ
f (t ) 
an 
1)
。
a0 
 {an cos(n0t )  bn sin(n0t )} … (1 )
2 n 1
2 T
f (t ) cos n0tdt … (2 )
T 0

f (t )   x(t )e  j0t dt

bn 
2 T
f (t ) sin n0tdt
T 0
… (3 )
… (4 )
方法と結果
比較方法として,いくつか案が出たので,それぞれ並行して 作成し実証結 果を集めた 。
比較方法①
„ア ー ‟と 発 音 し 録 音 し た 時 の , 周 波 数 成 分 の 上 位 5 位 の 大 き い 箇 所 の 値 を 比 較 し た 。
そ の 結 果 ,声 は 音 程 を 変 え る こ と が で き て し ま う 為 ,録 音 す る 度 に ,取 り 出 す 周 波 数 成
分が変わってしまい,同一人物での共通部分が見出せなかった。
比較方法②
FFT 後 の 全 て の デ ー タ の 平 均 を 取 り ,平 均 よ り 大 き か っ た ら 1 ,小 さ か っ た ら 0 と し
P /
P 6
て( 二 値 化 ),1 の 部 分 を 比 較 し た 。そ の 結 果 ,同 じ 人 の 音 声 で 一 致 率 5 割 を 越 え る 結 果
は得られなかったものの,ある程度の共通部分を見出せる結果を得られた。
比較方法③
方法②より細かく分析する方法として,二値化せずそ れぞれの値について差をとり,
その絶対値の和を比較した。しかし,本人同士の比較において大きな差が出てしまった
など,望ましい結果は得られなかった。
次 に ,② に つ い て ,改 善 策 と し て 録 音 比 較 時 の 改 良 を 行 う た
め,図1のような声紋図において,次のような手順を踏んだ。
1.始 め と 終 わ り の 無 音 部 分 を 削 除
2.入 力 が あ っ た と 判 断 し た 部 分 の 時 間 の 長 さ と 音 量 を 正 規 化
3.音 程 の ず れ を 調 整 し て 最 も 波 (白 )が 重 な る 点 を 探 索
図1
こ れ に よ っ て ,表 1 ,表 2 の よ う に ,一 致 率 が 同 一 人 物 で は
大野さんの声紋
80% 以 上 , 他 人 と の 比 較 で は 70% 前 後 と な る 結 果 を 得 た 。
表1
表2
“ア イ ウ エ オ ”と 発 音 し た 時 の 一 致 率
(%) 大野1 大野2 大野3 大野4 大野5 大野6 大野7 大野8 大野9 大野10
大野1 100 81.8 82.5 81.9 80.2 82.6
82 83.6 81.8
81.8
他人との比較
(%)
大野 井尻 浦野
大野
69.4 71.4
井尻
69.5
73.1
浦野
71.5 73.7
考察
正規化を行ったことで一致率がすべてのユーザーで上昇した。これは,音程のずれを最
小にする時に,他のユーザー固有の違い も最尐にしているためと考えられる。また,音程
の違いで微妙に声紋の形が変わったりしてしまうので,録音してから正規化を行うのでは
なく,録音の段階で条件(発音の長さと音程)を揃えたほうがよい。また登録されたデー
タ(音)に雑音が入るなどすると困るので,複数回録音しその平均を登録されるデータと
すると一致率が向上すると考えられる。
現段階では二値化をする際,ある一定値以上を超える と1とされるので,その周波数成
分の大きさは無視されている。これを比較できるようにすれば一致率のさらなる向上につ
ながると考えている。
参考文献
1) 情 報 工 学 入 門 シ リ ー ズ
森北出版株式会社
数値計算法
三井田惇朗/須田宇宙
共著
P /
P 7
課題名
群知能のアリゴリズムの研究
発表者氏名
犬飼航一郎
高橋一平
指導教員
今泉貴大
羽田昌也
今関寛人
松崎啓
仲道嘉夫
背景・目的
群 知 能 と は ,単 純 な 知 能 を 持 つ 個 体 が 集 団 と な る こ と で 創 発 し て く る 知 能 の こ と で 蟻 の
採 餌 行 動 な ど が 有 名 で あ る 。蟻 は フ ェ ロ モ ン コ ミ ュ ニ ケ ー シ ョ ン と よ ば れ る 方 法 で ,餌 ま で
の 道 筋 を 形 成 し ,闇 雲 に 餌 を 探 す よ り も 遥 か に 効 率 よ く 採 餌 活 動 を 行 う 。
本 研 究 で は ,群 知 能 に 基 づ い て 蟻 が 餌 か ら 巣 ま で の 道 を 最 適 化 す る 過 程 を 示 す プ ロ グ ラ
ム を 作 成 す る こ と に よ り ,蟻 に お け る 群 知 能 の 有 用 性 を 解 明 す る 。
理論
フ ェ ロ モ ン と は 同 種 の 個 体 間 で 作 用 す る 揮 発 性 の 化 学 物 質 で あ り ,社 会 性 昆 虫 は 様 々 な
種類のフェロモンを用いる。 蟻が採餌活動に用いる主なフェロモンは道しるべフェロモン
や ,足 跡 フ ェ ロ モ ン 等 が あ り ,蟻 は そ の 濃 度 を 感 知 し て い る 。
方法と結果
以 下 の よ う に visual C++を 用 い て プ ロ グ ラ ム を 作 成 し た 。
1.実 際 の 蟻 を 考 え ,進 め る 方 向 が 6 方 向 と な る
図 1 の よ う な 上 下 ,左 右 ,斜 め 方 向 の 距 離 が
等しくなるハニカム構造を基本とした。
図 1
12 ピ ク セ ル の 六 角 形
2.全 体 マ ッ プ を 作 成 し た 。 マ ッ プ は 図 1 の 六 角 形 を 1 マ ス と し ,100*100 マ ス と し た 。
3.マ ッ プ 上 の 任 意 の 点 に 餌 ・ 巣 を 配 置 し ,蟻 は 巣 か ら 動 き 始 め て 単 位 時 間 で 1 マ ス 動 け る
も の と し た 。 な お ,餌 は 複 数 個 置 く こ と も で き る 。
4.メ イ ン で あ る 蟻 の 移 動 に 関 し て は ,フ ェ ロ モ ン に よ る 確 率 計 算 で 進 む 方 向 を 決 め た 。
フ ェ ロ モ ン は 揮 発 性 の た め ,単 位 時 間 ご と に 一 定 の 割 合 で ,周 囲 の マ ス に 減 衰・拡 散 す る 。
5.実 際 の 蟻 を 参 考 に ,全 体 の 2 割 の 蟻 は フ ェ ロ モ ン を 感 知 し な い も の と し た 。
( 以 降 こ の 蟻 を N 蟻 と よ ぶ 。)
道 し る べ フ ェ ロ モ ン と 足 跡 フ ェ ロ モ ン の 2 種 類 の フ ェ ロ モ ン を 用 い た 蟻 の 動 き 方 を ,図
2 のフローチャートで示す。
P /
P 8
このプログラムを用いて,
「 蟻 の 数 を 変 更 し て の 効 率 の 変 化 」と「 N
蟻の数を変更しての効率の変化」を測定
した。
結 果 は ,下 の グ ラ フ の よ う に な っ た 。
図 3,4 は 横 軸 が そ れ ぞ れ 蟻 の 総 数 ,N 蟻 の
数 で ,縦 軸 が 時 間 効 率 で ,巣 か ら 餌 ま で 直
線 で 行 っ た 時 を 100% と し た 割 合 で あ る 。
100
90
80
70
60
50
500匹
40
300匹
30
20
10
50
考察
フローチャート
500匹
90
80
70
60
50
40
30
20
10
0
時間効率%
時間効率%
図2
100
200
300
アリの数
400
500
図 3 蟻の数と時間効率のグラフ
0
10%
13%
15%
20%
25%
Nアリの数%
図 4
N 蟻の数と効率のグラフ
図 3 よ り ,蟻 の 数 が 尐 な す ぎ る と 効 率 が 出 な い こ と か ら ,50 匹 や 100 匹 で は 群 知 能 が 機 能
し て い な い と 考 え ら れ る 。実 際 の 蟻 は 500 匹 以 上 の 群 れ で な い と 巣 を 形 成 出 来 な い 事 か ら ,
この結果はそのことを裏付けていると考えられる。
ま た 図 4 よ り ,効 率 を 保 つ の に 必 要 な N 蟻 の 割 合 が ,蟻 の 総 数 で 変 わ る 事 か ら ,割 合 で な
く 絶 対 数 が 重 要 で あ る と 考 え ら れ ,60 匹 程 度 が 必 要 だ と 分 か っ た 。 実 際 の 蟻 で は N 蟻 が 2
割 と 言 わ れ て い る 。 今 回 の 結 果 か ら ,そ の 割 合 が ほ ぼ 最 良 な 場 合 で あ る 事 が 確 認 で き た 。
以 上 よ り ,一 定 数 以 上 で 働 く 群 知 能 は ,採 餌 活 動 の 効 率 上 昇 に 非 常 に 有 効 で あ り ,実 際 の
蟻は巣を形成する総数や N 蟻がほぼ最適な割合になっていて群知能を十分に活用している
と分かった。
参考文献
・新昆虫用語の基礎知識
http://www.ne.jp/asahi/colorful/anima/wantyu/dicttop.htm
P /
P 9
課題名
音声入力電卓ソフトの開発
発表者氏名
石井裕貴
指導教員
石川幸治
大塚敏暉
田中健
古澤悠斗
柳澤伸矢
山本大
背景・目的
近 年 ,音 声 認 識 技 術 が 進 歩 し て お り ,音 声 認 識 技 術 を 研 究 し た い と 考 え て い た 。そ こ で ,
単語数が尐なく開発が比較的容易なアプリケーションとして,
マイク入力
音声認識電卓ソフトをテーマとすることにした。
理論
特徴量の抽出
こ の ソ フ ト の 流 れ を 図 1 に 示 し ,以 下 に 各 部 分 に つ い て 説
明する。
HMM
認識
・音声特徴量の抽出
文法
特 徴 量 と し て MFCC( メ ル 周 波 数 ケ プ ス ト ラ ム 係 数 )を 用
電卓
い る 。MFCC は 音 の 高 低 に 左 右 さ れ な い 音 素( 子 音 や 母 音 な
ど)の特徴を表すパラメータである。これを得るには,離散
フーリエ変換やケプストラム分析などを行う必要がある。
結果出力
図1 音 声 入 力 電 卓 ソ フ ト
・認識
の仕組み
得 ら れ た 特 徴 量 を 元 に , HMM ( 隠 れ マ ル コ フ モ デ ル ) お
よび数式としての文法を用いて,入力された音声がどのような文であるかを推定する。
HMM を 用 い る と , 入 力 の あ る 一 部 分 が 例 え ば ‘ ア ’ と い う 音 素 や “ イ チ ” と い う 単 語
で あ る 確 率 を 得 る こ と が で き る 。語 彙 数 の 多 い シ ス テ ム で は 音 素 単 位 で HMM を 用 い る が ,
こ の ソ フ ト で は 語 彙 数 が 尐 な い の で 単 語 単 位 の HMM を 用 い る こ と に し た 。ま た ,文 法 は
単語がどのように並び得るのかという情報である。なお,文法はあらかじめプログラムし
て お く が , HMM は 学 習 デ ー タ に よ る 学 習 を 行 う 必 要 が あ る 。
・電卓プログラム
認 識 に よ っ て 得 ら れ た 単 語 の 配 列 を 数 式 と し て 画 面 に 表 示 し ,そ の 計 算 結 果 を 出 力 す る 。
方法と結果
ま ず , 実 際 の 流 れ を 説 明 す る 。 最 初 に マ イ ク で 録 音 を し , HTK ※ ) を 用 い て 音 声 特 徴 量
を抽出する。その後,認識プログラムを用いて入力された音声がどのような数式であった
かを認識し,その結果から電卓プログラムで実際の計算を行う。
P /
P 10
今 回 ,認 識 部 分 に 重 点 を 置 い た た め ,特 徴 量 抽 出 部 分 は 代 わ り に HTK を 使 用 し て い る 。
また,単語ごとにクリックをはさむことで単語の境界を明確にし,認識率を上げることと
した。
認 識 率 の 実 験 結 果 を 表 1 に 示 す 。2 桁 以 上 の 演 算 は 文 法 の 自 由 度 が 増 し 認 識 が 難 し い の
で ,今 回 は 1 桁 と 1 桁 の 演 算 で 実 験 し た 。学 習 デ ー タ は 1 単 語 に つ き 100 個 ,テ ス ト デ ー
タ は 540 個 の 数 式 で あ る 。こ こ で ,確 率 を 計 算 す る 際 に 正 規 分 布 を い く つ か 重 ね た も の を
近 似 と し て 用 い る が , そ の 時 の 混 合 数 を W と す る 。 ま た , M は HMM の 状 態 数 を 表 す 。
確率
図2に混合数,図3に状態数のイメージ図を示す。
表1
数式認識率(%)
W=5
M=3
M=5
W=10
W=15
① 85.74
② 2.22
M=8
③ 87.04
④ 88.15
図2
特徴量
正規分布の混合
イチ
⑤ 22.41
i
考察
ch
i
図 3 状 態 数 3 の HMM
まず,②,③,④の比較から混合数が増えると認識率が上がる傾向が見られる。特に②
の認識率が極端に低いのは,混合数が尐な過ぎると十分な確率の計算ができないためでは
ないかと考えている。また,⑤より,状態数を増やしていくと認識率が下がり始める点が
ある可能性がある。これらを確認するには混合数・状態数を更に細かく設定し,実験を重
ねていく必要がある。また,⑤の認識率が下がる理由が分かっていないので,これについ
ても調べていきたいと考えている。
※ ) HTK( HMM ツ ー ル キ ッ ト ): 英 ケ ン ブ リ ッ ジ 大 学 が 配 布 し て い る H M M 音 声 認 識 ツ
ー ル 群 。 そ の 中 の 音 響 分 析 の 部 分 を 使 用 し て い る 。( http://htk.eng.cam.ac.uk/)
参考文献
1)オーム社
IT Text
2)森北出版
鹿野清宏
伊藤克亘
河原達也
武田一哉
山本幹雄
編著
音声認識システム
荒木雅弘
著
フリーソフトで作る音声認識システム
P /
P 11
課題名
インタプリタの製作
発表者氏名
浅野悠
大泉裕磨
後藤貴大
酒井龍
住吉洋平
園部哲也
指導教員
大森
好明
背景・目的
オ リ ジ ナ ル の プ ロ グ ラ ミ ン グ 言 語 「 NIC 」 を 処 理 で き る イ ン タ プ リ タ を 自 主 製 作 す る 。
理論
イ ン タ プ リ タ と は ,図 1 に 示 す よ う な
言 語 処 理 系 で あ る 。コ ン パ イ ラ と 異 な り ,
実行形式を出力しないという特徴がある。
イ ン タ プ リ タ 内 部 で の 処 理 を ,「 a = 3
* b」 と い う 式 を 例 に と っ て 図 2 に 示 す 。
図1
インタプリタとコンパイラ
図2において,まず字句解析では個々の
単 語 (ト ー ク ン )の 意 味 を 調 べ る 。 例 え ば ,「 a」 は 識 別 子 と
し て の 記 号 で あ り 「 3」 は 数 字 で あ る と い う こ と な ど で あ
る。次の構文解析では与えられたトークンの並びから ,そ
字句解析
a=3*b
記号 = 数 × 記号
構文解析
assign
の意味を判断し構文木を生成する。次に木最適化で構文解
析で作った構文木をより処理しやすいものへ改良し高速化
mul
identifier:a
int:3
構
文
木
identifier:b
を図る。具体的には関数内で使用される変数を調べ ,ソー
木最適化
スコード中の変数名や関数名などの識別子をその実態と関
連付ける。ここでは変数の実態を表す方法として実行時に
変数スタックの,どの位置にその変数があるかを示す「イ
declare:a,b,・・・
assign
identifier:0
int:3
mul
構
文
木
identifier:1
ンデックス」を用いた。最後に最適化された構文木を実行
す る 。実 行 は 構 文 木 を 順 に 評 価 し て い く こ と に よ っ て 行 う 。
現時点では演算はC言語のスタックを使用しているが ,変
実行
図2
NIC の 処 理
数の記憶には自作のスタックを使用している。
NIC で 扱 う こ と の で き る デ ー タ 型 は「 整 数 型 ・実 数 型 ・論 理 型 ・ NULL 型 ・ 文 字 列 型 ・
配列・構造体・クラス」の 8 つである。このうち後の4つはオブジェクトであり ,参照カ
ウンタ方式でメモリ管理をしている。この方式は,あるオブジェクトが何からも参照され
P /
P 12
なくなったとき自動的にメモリ領域を解放する方式である。図3に文字列オブジェクトの
処理における参照カウンタの動きの例
a = "hoge"; b = "fuga";
を示す。
NIC に は そ の ほ か に も メ ソ ッ ド 呼
び出し機能・多重代入機能・文字列演
算の機能などを付けている。
a = b;
a
"hoge"
a
"hoge"
●
count = 1
●
count = 0
b
"fuga"
b
"fuga"
●
count = 1
●
count = 2
図3
←解放
参照カウンタ方式によるメモリ管理
方法と結果
今回,我々が自主製作したインタプリタの実行
表1
実 行 時 間 の 比 較 (単 位 は 秒 )
Program
時間を表1に示す。インタプリタには,木最適化
を し な い 方 式 の「 旧 NIC」と ,木 最 適 化 を す る 方
loop
long
言語
式 の「 新 NIC」の 2 つ ,更 に 比 較 対 象 と し て 実 用
新 NIC
10.8
1.4
さ れ て い る イ ン タ プ リ タ 型 言 語 で あ る Ruby1.8
旧 NIC
19.9
1.3
と Perl を 用 い た 。用 い た プ ロ グ ラ ム は ,ル ー プ を
Ruby
13.6
0.1
用 い て フ ィ ボ ナ ッ チ 数 列 の 10 3 番 目 を 10 4 回 算 出
Perl
6.8
0.3
す る「 loop」,ル ー プ は な い が 10 4 行 の 簡 単 な 処 理
を す る 「 long」 の 2 つ で あ る 。
考察
表 1 の loop に お い て 新 NIC は 旧 NIC と 比 較 す る と 木 最 適 化 を 行 う こ と に よ り 実 行 時 間
が 短 縮 さ れ て お り , 木 最 適 化 に よ る 高 速 化 の 成 果 が あ っ た と い え る 。 ま た Ruby よ り も 実
行速度は速く,NICは実用に耐えられる速度ではあるといえる。
表 1 の long に お い て NIC は Ruby や Perl に 比 べ 遅 い 。そ の 理 由 は ,構 文 木 構 築 時 に 無
駄があることやメモリ確保やポインタ参照が多いことなどがあると考えているが ,今回の
一万行という条件での一秒程度の差はあまり問題ないと判断している。
今 後 , NIC は Perl の よ う に バ イ ト コ ー ド 実 行 型 の 言 語 に す れ ば 速 度 及 び 安 定 性 の 向 上
が期待できると考えられる。これは図2において「木最適化~実行」間にバイトコードを
生成する処理を入れることで実装可能であると考えている。
参考文献
「 UNIX 開 発 環 境 」 Brian W.Kernighan, Rob Pike 著
「 K.Maebashi‟s homepage」 (サ イ ト )
石田晴久
訳
http://kmaebashi.com/index.html
P /
P 13
課題名
マ ル チ プ ラ ッ ト フ ォ ー ム 対 応 P2P フ ァ イ ル 共 有 ソ フ ト の 開 発
発表者氏名
石川直樹
木下陽介
関野誠
高木元気
保坂智之
吉田侑基
指導教員
仲道嘉夫
背景・目的
現状のファイル共有ソフトには不満が多い。設定項目が多く操作が複雑であったり,異
な っ た OS 間 で 扱 え る ソ フ ト が 尐 な い , な ど で あ る 。
私 た ち は 簡 単 な 設 定 で 高 速 に フ ァ イ ル 共 有 を で き る こ と , Windows, Linux, Mac OSX の 3
つ の OS で 動 作 す る こ と を 目 標 と し た ソ フ ト ウ ェ ア (名 称 :PP4U)の 開 発 を 開 始 し た 。
理論
図 1 に PP4U の 動 作 の 様 子 を 示 す 。 PP4U は 各 ノ ー ド 間 で 適 時 接 続 し 合 い な が ら ネ ッ ト ワ
ー ク を 形 成 す る (① )。 あ る ノ ー ド A が フ ァ イ ル の 検 索 を す る 場 合 , A は 自 身 の リ ス ト に あ
る ノ ー ド に の み 検 索 依 頼 を 送 信 す る (② )。 要 求 を 受 け た ノ ー ド B は 自 身 の リ ス ト 内 の ノ ー
ドに検索依頼を転送する。検索されたファイルが見つかった場合には,結果は検索依頼が
送られてきた経路を逆に辿って A に検索結果を通知する。なお,転送は 5 回まで繰り返さ
れ,それでも見つからなかった場合には検索失敗となる。
例えば A が探していたファイルを直接関わりのないノード C が所持するものとしてファ
イ ル 転 送 時 の 動 作 の 説 明 を す る 。前 述 の と お り ,C→ B→ A の 経 路 で 検 索 結 果 が A に 戻 り ,A
は 探 し て い た フ ァ イ ル を C が 所 有 し て い る こ と を 知 る 。 フ ァ イ ル 転 送 は B を 経 由 せ ず A-C
間 で 直 接 行 う 。 そ の 後 A-C 間 の 接 続 は A と C 双 方 の リ ス ト に 追 加 さ れ (③ ), 次 回 の 検 索 か
らは C にも直接要求ができるので,より効率的に検索できる。
図 1 PP4U ネ ッ ト ワ ー ク の イ メ ー ジ 図
P /
P 14
方法と結果
作 成 し た PP4U の 実 行 画 面 を 図 2 に 示 す 。検 索 し た キ ー ワ ー ド を 入 力 し ,検 索 結 果 を ダ ブ
ルクリックすることでファイルをダウンロードできる。
あ る 一 定 の 条 件 下 で 10MB の フ ァ イ ル を 送 信 し た と き の 転 送 速 度 を 表 1 に ま と め る 。比 較
対 象 は MSN Messenger と ネ ッ ト ワ ー ク 管 理 に サ ー バ を 必 要 と し た 旧 ソ フ ト ウ ェ ア (旧 P4U)
で あ る 。 表 1 か ら わ か る よ う に MSN Messenger と の 比 較 で は す べ て の 環 境 に お い て 2 倍 ほ
ど 高 速 で あ り ,余 計 な 経 路 を た ど ら な い P2P 方 式 の 通 信 の 利 点 を 生 か せ た と 言 え る 。ま た ,
旧 P4U と の 比 較 で も 遜 色 な い 結 果 を 残 し た 。
表 1
送信元
送信先
測定結果
ソフト名
所 要 時 間 [秒 ]
PP4U
Windows Windows MSN Messenger
454
旧 P4U
218
PP4U
224
MSN Messenger
381
旧 P4U
245
PP4U
232
Windows MSN Messenger
689
旧 P4U
257
Windows Linux
Linux
249
図 2 スクリーンショット
考察
ノード間を直接接続し転送しているため,ファイル転送にサーバを介すソフトに比べ高
速にファイル転送を行えることが確かめられた。だがまだまだ高速に転送 できる余地はあ
る と 考 え ら れ る 。 旧 P4U と の 比 較 で は わ ず か な が ら 速 度 の 低 下 が み ら れ た が , そ れ は 内 部
での処理が複雑化したためだと考えられる。
また,匿名性のないネットワークであるため違法な使い方をしているユーザーを簡単に
特 定 す る こ と が で き る 。 こ れ に よ り P2P フ ァ イ ル 共 有 ソ フ ト の 最 大 の 問 題 と 言 わ れ て い る
違法ファイルの共有を防ぎやすい。
図 2 のようにシンプルに扱える導入の敷居が低いソフトウェアになった。
今後の発展
・検索の効率向上を目指し,改良・検証を進める。
・ 合 法 的 な P2P 技 術 の 活 用 を 提 案 し て い く 。
P /