• 検索結果がありません。

フリーソフトでつくる音声認識システム ( 第 2 版 ) サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 第 2 版 1 刷発行時のものです.

N/A
N/A
Protected

Academic year: 2021

シェア "フリーソフトでつくる音声認識システム ( 第 2 版 ) サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 第 2 版 1 刷発行時のものです."

Copied!
34
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

「フリーソフトでつくる音声認識

システム(第 2 版)」

サンプルページ

この本の定価・判型などは,以下の URL からご覧いただけます.

http://www.morikita.co.jp/books/mid/084712

※このサンプルページの内容は,第 2 版 1 刷発行時のものです.

(3)
(4)

i

まえがき

本書は,2007年10月に出版した「フリーソフトでつくる音声認識システム—パ ターン認識・機械学習の初歩から対話システムまで—」の改訂版です.パターン認識 の基礎理論を解説した第1部は,近年の機械学習の話題につながる説明の加筆と,一 部の例題の見直し(Scilabを用いたコーディングの導入)を行いました.また,音声 認識手法の説明である第2部は,取り上げたソフトウェアのバージョンアップに従っ た記述変更および取り上げるソフトウェアの変更を行いました. パターン認識・機械学習・音声認識技術は初版出版以来大きく進歩し,その内容は 年々複雑になってきています.しかし,基礎の部分をしっかり理解しないまま前に進 むことはできません.本書がこれらの分野を学ぶ方々の第一歩を支える役割を果たす ことを祈ります. 2017年2月 著者しるす

1

版 まえがきより(一部改訂)

本書は,読者のみなさんがパターン認識と機械学習理論を初歩から学び,その実 践として音声認識システムを作成する方法を身につけることを目的として執筆しま した. 解説はなるべく単純化された事例を用い,フリーソフトを使ってその手順を一歩一 歩確認しながら進めます.対象は主として初学者で,大学あるいは高等専門学校の情 報系学科で教科書・実験指導書として利用されることを想定しています. 本書は2部構成となっています. 第1部ではパターン認識の基礎理論を説明します.パターン認識とは,人間が音声 を理解したり,文字を読み取ったり,人の顔を見分けたりする能力のことです.本書 の前半では,この能力をコンピュータにもたせるための理論を解説します.まず,パ ターン認識システムの全体構成について説明した後,サンプルを使ってコンピュータ に「学習」をさせる方法を説明します.そこでは,問題の難しさに応じていくつかの

(5)

ii まえがき 学習アルゴリズムを使い分ける方法を具体的に示します.また,パターン認識におけ るエラーへの対処法や,認識システムの評価法について解説します. 第2部では,いくつかのフリーソフトを使って,パターン認識の応用分野の一つで ある音声認識システムを作り上げる過程を説明します.ここで説明するソフトウェア は,他の時系列パターンの認識に応用できるものや,自然言語を処理するシステムに も使えるものもあるので,音声認識以外の認識分野を研究テーマにしている方々に も,ツールで何ができるのかということと,そのもっとも基本的な使い方を習得して いただけると思います. 本書は,理論をできるだけ平易に解説し,その理論を実装したフリーソフトを実際 に動かしながら,「手順を追うことによって理論を身に付ける」というスタイルをとり ます.データを自分で準備し,そこから音声認識システムを構築する手順を詳細に追 うことで,作る喜びが体験できると考えています.しかし,手順通り進めているはず でもエラーメッセージで処理が止まってしまったり,認識精度が著しく低いというよ うなケースがあるでしょう.また,紹介したフリーソフトのバージョンアップなどに より,説明した手順ではうまく動かないことがあるかもしれません.しかし,そのと きこそ,教科書通りの学習では得られない実践的知識が身に付くと著者は考えます. 必要に迫られてエラーメッセージやマニュアルを解読し,類似事例をwebで検索し, 試行錯誤でエラーに取り組むことで,教科書から得られる受身の知識とは別種の,い わば能動的な知識が身に付くことでしょう. 本書では図や具体例を用いてなるべく直観的に理解できる説明を心がけました.そ のため,厳密性を犠牲にした箇所がいくつかあります.また,著者の勉強不足による 誤りもあるかもしれません.御指摘・御批判をいただければ幸いです. 本書を通じて,パターン認識や音声認識に興味をもってくださる読者が少しでも増 えれば,これに勝る喜びはありません. 2007年9月 著者しるす

(6)

iii

目 次

1

パターン認識の基礎

1

1

章 パターン認識って何?

3

1.1 パターン認識とは ··· 3 1.2 パターン認識システムの構成 ··· 4 1.3 前処理部 ··· 5 1.4 特徴抽出部 ··· 6 1.5 識別部と識別辞書 ··· 7 1.5.1 基本的な識別手法 7 1.5.2 識別辞書の中身 8 演習問題 12 第

2

章 データをきちんと取り込もう

13

2.1 アナログ信号のディジタル化 ··· 13 2.1.1 アナログ信号は波である 13 2.1.2 標本化と量子化 14 2.2 人の知覚に近づける ··· 17 2.2.1 音声の知覚 17 2.2.2 画像の知覚 20 2.3 特徴抽出をしやすくする処理 ··· 21 2.3.1 音声の場合 21 2.3.2 画像の場合 22 演習問題 24 第

3

章 パターンの特徴を調べよう

25

3.1 変動に強い特徴とは ··· 25 3.1.1 音声の場合 25 3.1.2 画像の場合 28 3.2 特徴のスケールを える ··· 30 3.3 特徴は多いほどよいか ··· 34 3.3.1 偶然に見つかってしまってはまずい 34 3.3.2 特徴を減らそう 37 演習問題 41

(7)

iv 目 次 第

4

章 パターンを識別しよう

42

4.1 NN法の定式化と問題設定 ··· 42 4.1.1 「もっとも近い」の定義 42 4.1.2 プロトタイプと識別面の関係 43 4.1.3 プロトタイプの位置の決め方 45 4.2 パーセプトロンの学習規則 ··· 46 4.2.1 識別関数の設定 47 4.2.2 識別関数とパーセプトロン 48 4.2.3 2クラスの識別関数の学習 49 4.2.4 パーセプトロンの学習アルゴリズム 52 4.3 区分的線形識別関数とk-NN法 ··· 55 4.3.1 平面で区切れない場合 55 4.3.2 区分的線形識別関数の実現 56 4.3.3 区分的線形識別関数の識別能力と学習 57 4.3.4 学習をあきらめるのも一手—k-NN法 58 演習問題 60 第

5

章 誤差をできるだけ小さくしよう

61

5.1 誤差評価に基づく学習とは ··· 62 5.2 解析的な解法 ··· 63 5.3 最急降下法 ··· 65 5.3.1 最急降下法による最適化 65 5.3.2 Widrow–Hoffの学習規則 66 5.3.3 確率的最急降下法 68 5.4 パーセプトロンの学習規則との比較 ··· 69 5.4.1 パーセプトロンの学習規則を導く 69 5.4.2 着目するデータの違い 70 演習問題 71 第

6

章 限界は破れるか(

1

) —サポートベクトルマシン

72

6.1 識別面は見つかったけれど ··· 72 6.2 サポートベクトルマシンの学習アルゴリズム ··· 73 6.2.1 サポートベクトル 73 6.2.2 マージンを最大にする 74 6.3 線形分離可能にしてしまう ··· 80 6.3.1 高次元空間への写像 80 6.3.2 カーネル法 81 6.3.3 具体的なカーネル関数 82 演習問題 85

(8)

目 次 v

7

章 限界は破れるか(

2

) —ニューラルネットワーク

86

7.1 ニューラルネットワークの構成 ··· 86 7.2 誤差逆伝播法による学習 ··· 88 7.2.1 誤差逆伝播法の名前の由来 89 7.2.2 結合重みの調整アルゴリズム 89 7.2.3 調整量を求める 90 7.2.4 過学習に気をつけよう 95 7.3 ディープニューラルネットワーク ··· 95 7.3.1 勾配消失問題とは 96 7.3.2 多階層学習における工夫 97 7.3.3 特化した構造をもつニューラルネットワーク 99 演習問題 102 第

8

章 未知データを推定しよう —統計的方法

103

8.1 間違う確率を最小にしたい ··· 103 8.1.1 誤り確率最小の判定法 103 8.1.2 事後確率の求め方 104 8.1.3 事後確率の間接的な求め方 105 8.1.4 厄介者 p(x) を消そう 106 8.1.5 事前確率 P (ωi)を求める 106 8.1.6 最後の難敵「クラス分布 p(x|ωi)」 107 8.2 データの広がりを推定する ··· 107 8.2.1 未知データの統計的性質を予測する 108 8.2.2 最尤推定 109 8.2.3 統計的な識別 110 8.3 実践的な統計的識別 ··· 114 8.3.1 単純ベイズ法 114 8.3.2 ベイズ推定 114 8.3.3 複雑な確率密度関数の推定 115 演習問題 116 第

9

章 本当にすごいシステムができたの?

117

9.1 未知データに対する認識率の評価 ··· 117 9.1.1 分割学習法 117 9.1.2 交差確認法 118 9.2 システムを調整する方法 ··· 120 9.2.1 前処理の確認 121 9.2.2 特徴空間の評価 121 9.2.3 識別部の調整 124 演習問題 128

(9)

vi 目 次

2

実践編

129

10

章 声をモデル化してみよう —音響モデルの作り方・使い方・鍛え方

131

10.1 連続音声の認識 ··· 131 10.2 音響モデルの作り方 ··· 133 10.3 音響モデルの使い方 ··· 137 10.3.1 HMMにおける確率計算 138 10.3.2 トレリスによる効率のよい計算 139 10.3.3 ビタビアルゴリズムによる近似計算 140 10.4 音響モデルの鍛え方 ··· 142 10.4.1 状態遷移系列がわかっている場合 142 10.4.2 状態遷移系列の確率がわかっている場合 143 10.4.3 Baum–Welchアルゴリズム 144 10.5 実際の音響モデル ··· 146 10.5.1 離散値から連続値へ 146 10.5.2 ディープニューラルネットワークによる高精度化 147 10.5.3 調音結合をモデル化する 149 演習問題 149 第

11

HTK

を使って単語を認識してみよう

151

11.1 HTKの構成 ··· 151 11.2 音声の録音とラベル付け ··· 153 11.3 特徴抽出 ··· 155 11.4 初期モデルの作成 ··· 156 11.5 初期値の設定 ··· 158 11.6 HMMの学習 ··· 160 11.7 単語認識 ··· 161 11.8 認識率の評価 ··· 164 演習問題 165 第

12

章 文法規則を書いてみよう

166

12.1 音声認識における文法 ··· 166 12.2 タスクから文法を設計する ··· 167 12.3 文法規則における制限 ··· 169 12.3.1 文脈自由文法 169 12.3.2 正規文法 170 12.4 Juliusでの文法記述 ··· 171 12.5 標準化された文法記述 ··· 176 演習問題 179

(10)

目 次 vii

13

章 統計的言語モデルを作ろう

180

13.1 文の出現確率の求め方 ··· 180 13.2 N-グラム言語モデル ··· 181 13.2.1 N-グラムによる近似 182 13.2.2 言語モデルの評価 183 13.2.3 ゼロ頻度問題 183 13.3 一度も出現しないものの確率は? ··· 184 13.3.1 一定値を加えることによるスムージング 184 13.3.2 削除推定法 185 13.3.3 Good–Turing法 185 13.4 信頼できるモデルの力を借りる ··· 186 13.4.1 線形補間法 187 13.4.2 バックオフスムージング 187 13.5 ニューラルネットワークを用いた言語モデル ··· 189 13.6 SRILM入門 ··· 190 演習問題 193 第

14

章 連続音声認識に挑戦しよう

194

14.1 基本的な探索手法 ··· 194 14.1.1 単純な探索 194 14.1.2 ビーム探索 195 14.2 ヒューリスティック探索 ··· 196 14.2.1 最良優先探索 196 14.2.2 ゴールまでの近さの情報 197 14.3 WFSTによる探索手法 ··· 198 14.4 文法に基づく認識システムを動かす ··· 199 14.5 ディクテーションシステムを動かす ··· 201 14.6 認識結果の評価 ··· 203 14.6.1 評価用データの準備 203 14.6.2 認識実験 204 14.6.3 認識率の算出 204 演習問題 206 第

15

章 会話のできるコンピュータを目指して

207

15.1 音声対話システムの構成 ··· 207 15.2 対話管理の方法 ··· 208 15.3 音声対話エージェント ··· 211 15.3.1 MMDAgentの概要 211 15.3.2 MMDAgentでの対話定義 212 15.3.3 サンプルシナリオの解析 213 15.3.4 特急券購入タスク対話の実装 214 演習問題 216

(11)

viii 目 次 演習問題の解答

217

付 録

A

数学的な補足

230

A.1 フーリエ解析 ··· 230 A.2 データの統計的性質 ··· 231 A.3 固有値・固有ベクトル ··· 233 A.4 ラグランジュの未定乗数法 ··· 234 A.4.1 等式制約下の最適化問題 234 A.4.2 不等式制約下の最適化問題 235 A.5 正規分布 ··· 236 付 録

B Scilab

演習

238

B.1 プログラミング環境 ··· 238 B.2 基 本 ··· 239 B.2.1 変 数 240 B.2.2 基本演算・基本関数 241 B.3 行列の扱い ··· 241 B.3.1 基本的な行列の作成 241 B.3.2 部分・範囲の指定 241 B.3.3 ベクトル・行列の演算 241 B.4 グラフ表示 ··· 242 B.5 制 御 ··· 243 B.6 関数定義 ··· 243 B.7 演 習 ··· 243 付 録

C Weka

におけるディープニューラルネットワークによる識別

244

C.1 DL4Jのインストール ··· 244 C.2 DL4Jで多階層ニューラルネットワーク ··· 245 C.3 DL4Jで畳込みニューラルネットワーク ··· 246 付 録

D

読書ガイド

248

あとがき

250

参考文献

251

索 引

252

(12)

3

1

パターン認識って何?

1.1

パターン認識とは

パターン認識は英語のpattern recognitionの訳語です.人間や動物が知覚できる 実世界の画像・音・匂いなどの情報をパターン (pattern)といいます.recognition という単語はre(もう一度)とcognition(認めること)とに分けられます.入って きた情報を,すでにもっている知識と照らし合わせて,「あっ,あれだ」と判断する という意味になります.すなわちパターン認識とは,目や耳で知覚したパターンを既 知の概念(クラス)に対応させる処理のことです. たとえば,人間は目から画像情報を得て,見ているものが何であるかがわかります. また,知っている人であれば誰であるかがわかります.耳から音を聞いて,自分が普 段使っている言語であれば,何をいっているのかがわかります.玄関のドアを開けた ら,ぷーんと匂いがしてきて,「今日はカレーだ」とわかったりします.この場合は, 「キッチンからの匂い」という「パターン」を,「カレー」という「クラス」に識別し ているのです.このような処理がパターン認識です. 一般に「パターン認識技術」というときは,この識別する主体はコンピュータです. 人間が行っているパターン認識をコンピュータに代行させて,人間は楽をしようとい うわけです. たとえば1970年頃の郵便物の仕分けは,葉書や封筒に書かれている郵便番号を人 が読み取って,行き先ごとの棚に手で振り分けていました.いまでは手書き数字を パターン認識する機械が郵便番号を読み取って,自動的に振り分けてくれます(図 1.1(a)). また,スマートフォンでは音声対話アプリが利用可能になり,アラーム設定・スケ ジュール登録などの操作や,乗換案内・天気予報などの情報取得が音声入力によって できるようになりました.また,いくつかの対話アプリが個性を競うようになり,気 の利いた雑談機能も備えるようになってきています(図1.1(b)). 近年では,人間の代わりに車を運転してくれる自動運転技術の開発が盛んです.歩 行者・他の車両・道路の情報などを認識して車を自動操縦することで,人間が楽にな

(13)

4 第1章 パターン認識って何? 図1.1 さまざまなパターン認識システム り,さらには人間が運転するよりも安全で事故が少なくなるような車社会の実現が目 指されています(図1.1(c)).

1.2

パターン認識システムの構成

パターン認識を行うプログラムは,認識の対象(音声・静止画像・動画像など)に かかわらず,一般に図1.2に示すようなモジュール構成で実現します. 図1.2 パターン認識システムの構成 † 道路状況認識システムは,ケンブリッジ大学 SegNet のデモンストレーションページでの実行例です.画 像ファイルをアップロードすると,認識結果を表示してくれます(http://mi.eng.cam.ac.uk/projects/ segnet/).

(14)

1.3 前処理部 5 前処理部は,入力されたパターンであるアナログ信号をディジタル信号に変換しま す.特徴抽出部は,そのディジタル信号から識別に役立つ特徴を取り出し,ベクトル の形式で出力します.識別部は受け取ったベクトルを識別辞書の内容と照らし合わせ ることによって,結果としてクラスを出力します. 以下では,各モジュールの役割と内部の処理を簡単に説明します.

1.3

前処理部

パターン認識の対象は実世界の信号です.音声は空気の疎密波であり,画像は2次 元に広がった光の強度分布です.このような信号は連続的に変化するので,当然アナ ログ信号です.一方,コンピュータが処理できるのはディジタル信号です.したがっ て,パターン認識の最初の処理である前処理の役割は,アナログ信号をディジタル信 号に変換することになります(図1.3). 図1.3 アナログ ̶ ディジタル変換 アナログ信号は,コンピュータに接続された入力デバイスを通じて取り込みます. 音声の場合は,マイクを使って空気の密度の変化を電気信号に変換します.画像の場 合はカメラを使って画像素子が感知した光の強さを電気信号に変換します. 音声は,取り込むハードウェア(パソコンの場合はオーディオデバイス)の性能の 上限まで細かな情報を取り込めます.また,画像はカメラの画素数の上限まで細かい 情報を取り込めます.当然,アナログ信号はできるだけ忠実にディジタル化したほう が望ましいと考えられます.しかし,もとの情報を忠実に保持しようとすればするほ ど,表現に必要なデータ量は多くなります.データ量が多くなると,後段の特徴抽出 処理の負担が大きくなり,認識のスピードが落ちてしまう可能性があります.後のこ とを考えると,ディジタル化した信号は,認識に必要な情報を保持しながら,できる だけ少ないデータ量で押さえるほうが望ましいわけです. また,信号処理レベルで行えるノイズ除去など,後の特徴抽出処理を容易にする処 理を前処理に含める場合もあります. パターンの前処理に関しては,第2章で詳しく説明します.

(15)

6 第1章 パターン認識って何?

1.4

特徴抽出部

特徴抽出とは,後段のパターンの識別†1に役に立つ情報を,入力されたデータから 取り出す処理のことです. これは逆にいうと,パターンの識別に役に立たない情報を捨てるということです. 音声認識の場合は,話された音声がどの文字に対応しているかを識別する処理なので, 誰が話しているのかということや,どのような大きさの声なのかということなどは, 識別には関係しない情報として捨てることになります.文字認識の場合では,文字の 位置・大きさ・色などが識別には関係のない情報です.枠の真ん中に書いても端っこ に書いても,大きく書いても小さく書いても,黒で書いても赤で書いても, (こち らは画像信号です)というパターンは「あ」(こちらは記号です)という文字です.こ のような識別に無関係な情報をパターンの変動とよんで,識別に用いる特徴と区別し ます.パターンの識別に用いる特徴は,パターンの変動に影響されにくい情報でなけ ればなりません. また,特徴抽出処理によって取り出す特徴は,何を識別対象のクラスにするかに よって異なります.たとえば音声認識では,何をしゃべっているかということに関係 のある特徴を,誰がしゃべっているかということに関係なく取り出さなければいけま せん.しかし,話者認識ではその逆です.誰がしゃべっているかということに関係の ある特徴を,何をしゃべっているかに関係なく取り出さないといけないのです.同じ 音声を対象にしていても,識別対象が異なれば,取り出すべき情報がまったく違うわ けです. 一般に,一つの特徴だけで高精度な識別が行えることは,なかなかありません.た とえば,顔画像から目の部分だけを切り出した情報を用いて,それが誰であるかを見 分けるのは難しいものです.人間でも人の顔を見分けるときは,髪型・顔の輪郭・肌 の色などの複数の特徴を使っていると思われます.このような複数の特徴をまとめて 表現する方法として,パターンの認識に使われる特徴は,一般に以下に示すような特 徴ベクトルの形式で表現されます. x = (x1, x2, . . . , xd)T (1.1) これはd個の特徴の並びを表現したd次元ベクトルです†2.このd次元空間を特徴 †1 本書では,あるデータがどのクラスであるかを判定する処理を「識別」とよび,実世界のパターンをクラス に対応付ける処理を「認識」とよびます.すなわち「識別」とその前の何段階かの処理をまとめてた場合を 「認識」とよぶこととします. †2 ベクトル表記の肩に T とあるのは転置を意味します.特徴ベクトル x は列ベクトルで表現するのが一般的 なのですが,スペースを節約するために行ベクトルで書いて転置の記号を付けています.

(16)

1.5 識別部と識別辞書 7 図1.4 特徴空間と特徴ベクトル 空間とよび,xを特徴ベクトルとよびます.特徴ベクトルは特徴空間上の1点になり ます(図1.4). この特徴ベクトルが特徴抽出部の出力です.特徴抽出処理については第3章で詳し く説明します.

1.5

識別部と識別辞書

パターン認識システムの最後の識別部はパターン認識処理の結果を出すところで, 責任重大です.本書の第1部でも,説明の大半はこの識別部に関するものです.

1.5.1

基本的な識別手法 識別部は,入力された特徴ベクトルが,どのクラスに属するかを判定します.その ときに用いる情報が識別辞書です.識別辞書にどのような情報を格納するかに関して は,さまざまな方法があります. もっとも基本的な方法としては,お手本となるベクトルを各クラス一つずつ格納し ておき,識別したい入力をそのお手本と比較するという方法があります.このお手本 となるベクトルを,プロトタイプとよびます. 特徴ベクトルやプロトタイプは連続値を要素とするので,それらがぴったり一致す ることはあまりありません.なんらかの基準で「近い」ものを選びます.この選ばれ たプロトタイプの属するクラスが,認識結果として出力されます. まず,識別したいデータに対応する特徴ベクトルをxとします.これは特徴抽出部 の出力で,式(1.1)で示したd次元ベクトルです. 次に,識別したいクラスがc種類あるとして,それらをそれぞれ ω1, ω2, . . . , ωc

(17)

8 第1章 パターン認識って何? 図1.5 特徴空間上のプロトタイプ 表します.プロトタイプはそれぞれのクラスに対応して一つずつ用意されるd次元ベ クトルで,それぞれp1,p2, . . . ,pcと表します(図1.5). ここで,特徴ベクトルxがどのクラスに識別されるかを判定する方法として,xと 各クラスのプロトタイプp1,p2, . . . ,pcとの距離を測り,一番近いプロトタイプpiが 属するクラスωiを正解とする方法が考えられます(図1.6).この方法を最近傍決定 則(nearest neighbor法,以後NN法)とよびます.NN法の詳細については第4 章で解説します. 図1.6 最近傍決定則

1.5.2

識別辞書の中身 識別部が参照する識別辞書の中にはプロトタイプの情報が入っています.それで は,プロトタイプの位置はどうやって決めればよいのでしょうか.一般に,パターン 認識では多くのサンプルを集めて,その情報からプロトタイプの位置を決めるという 方法が用いられています.

(18)
(19)

42

4

パターンを識別しよう

本章ではパターン認識システムでもっとも重要な構成要素である識別部(図4.1) の処理について説明します. 図4.1 識別部の位置付け 最初に,第1章で概要を紹介したNN法(最近傍決定則)を,記号や数式を使って きちんと定義します.以後で他の識別手法や学習方法を議論するときに,ここで紹介 する記号や数式が必要になるので,きっちりと理解しておきましょう.次に,NN法 における学習を実現する際の,もっとも基本的な方法であるパーセプトロンの学習規 則を説明します.最後に,NN法のバリエーションをいくつか紹介します.

4.1

NN

法の定式化と問題設定

NN法とは,特徴空間上のベクトルとして各クラスのお手本となるプロトタイプを 用意しておいて,入力ベクトルとプロトタイプとの距離を測り,もっとも近いプロト タイプの属するクラスを認識結果として出力するというものでした.ここでは記号や 数式を使ってNN法を定式化します.

4.1.1

「もっとも近い」の定義 まず分類するクラスがc個あるものとします.それぞれをω1, ω2, . . . , ωc としま す.いま,特徴ベクトルがd次元であるとし,クラスωiのプロトタイプpiを以下の

(20)

4.1 NN法の定式化と問題設定 43 ように定義します. pi= (pi1, pi2, . . . , pid)T (i = 1, . . . , c) (4.1) また,入力ベクトルxは以下のように定義します. x = (x1, x2, . . . , xd)T (4.2) この入力ベクトルxとプロトタイプpiとの距離はどうなるでしょうか.一般に, ベクトル間の距離D(x, pi)は以下のように定義できます. D(x, pi) =  (x1− pi1)2+ (x2− pi2)2+· · · + (xd− pid)2 (4.3) ここでは通常のユークリッド距離を用いています.実は,単純にユークリッド距離 を用いるのは問題があるのですが,そのことは第8章で説明するので,まずはここで はこのように理解しておいてください. 距離の最小値を以下のように表記します.minはminimumの省略で,最小という 意味です. min D(x, pi) (i = 1, . . . , c) (4.4) ここで気を付けてほしいのは,識別部において本当に求めたいものは入力ベクトル と各プロトタイプとの距離そのものではなく,その距離が最小なのはどのプロトタイ プか,ということです.これは以下のように表記します. arg min i D(x, pi) (i = 1, . . . , c) (4.5)

見慣れない記号が出てきましたね.arg min とはargument minimumということ です.argument とは引数という意味で,関数に渡す値のことです.数学でいうと

f (x)xです.C言語などのプログラミング言語をご存知の方は,関数の引数といえ ばわかるでしょう.arg minの下に小さく書いてあるiが引数です.つまり,arg min の後に書かれた式に対して,指定した引数の値をいろいろ変えたときに,その計算結 果が最小になるような「引数の値」を返します.したがって,minという関数が最小 値を返すのに対して,arg minは最小値をとる引数の値を返すということになります.

4.1.2

プロトタイプと識別面の関係 さて,式(4.5)の値を求める処理を行う識別部はいったい何をしていることになる のでしょうか.話を単純にするために,いま2クラスの識別問題(男性か女性か,雨 が降るか降らないか,などです)を対象とするものとします.そして図で説明しやす

(21)

44 第4章 パターンを識別しよう くするために特徴ベクトルを2次元とします.ある特徴ベクトルxが入力されたと きに,xがクラスω1のプロトタイプp1に近いのか,クラスω2のプロトタイプp2 に近いのか,を求めたいわけです. これは,p1p2から等距離にある領域を求め,xがその領域のどちら側に入って いるかを調べるということと同じです.2次元空間上の2点から等距離にある領域 は,その2点を結ぶ直線の垂直二等分線ということになります(図4.2).この直線 を,識別面とよぶことにしました.図4.2では,特徴空間が2次元なので,識別面は 直線になります. 図4.2 プロトタイプと識別面の関係 それぞれのクラスを代表するプロトタイプが決まると,特徴空間が識別面で分割で きることになります.つまりNN法においては,プロトタイプの位置を決めるという ことと,識別面を決めるということは同じだということです.識別面が決まった後, 識別したい入力xが識別面のどちらの空間に属するかを判定すれば,NN法による識 別ができることになります. なお,図4.2のように線形の識別面でクラスが分離できるような場合を線形分離可 能であると表現します. 例題4.1 クラスω1のプロトタイプがp1 = (2, 8)ω2のプロトタイプがp2 = (8, 4)で 与えられているときに,入力x = (1, 6)はNN法を用いるとどちらのクラスと識別される か.また,このときの識別面の式を求めよ. 解答例 xと,p1,p2とのユークリッド距離Dは, D(x, p1) =(1− 2)2+ (6− 8)2=5 D(x, p2) =(1− 8)2+ (6− 4)2=53 で,D(x, p1) < D(x, p2)なので,入力xはクラスω1と判定されます.

(22)

4.1 NN法の定式化と問題設定 45 また,二つのプロトタイプの中点(5,6)を通り,直線p1p2 と直交する直線は, 3x1− 2x2= 3 となるので,これが識別面です(図4.3). 図4.3 プロトタイプから識別面を求める

4.1.3

プロトタイプの位置の決め方 ここまでの話をまとめると,各クラスに対してプロトタイプの位置が決まれば,NN 法で識別が行えるということになります.それでは,どのようにしてプロトタイプの 位置を決めればよいのでしょうか. プロトタイプはお手本となるベクトルでした.「お手本」という言葉からは,「きれ いなもの」を想像します.音声であればアナウンサーの発音がお手本になりそうです. 手書き文字であれば,枠の中央にほどよい大きさで書かれたゆがみのないバランスの よい文字がお手本になりそうです.でも,パターン認識のお手本は少し違います. 一つの考え方は,多くの人の発音・多くの人の手書き文字の平均的なデータをお手 本とすることです.その平均的なデータはもしかしたら「きれいな」データではない かもしれませんが,実際のデータを代表するものになりそうです. たとえば,何人かに発音をしてもらって,ある音素に対応するクラスω1のデータ が図4.4のように特徴空間上に広がったとします.このように広がったデータの代表 点といえば,たとえばp1のような重心を考えることができます.クラスω2に関して も同様にp2が決まれば,識別面は図4.4のように定まります. しかしここで,図4.5のような場合を考えてみてください. データに偏りがあるため,重心の位置は各クラスの広がりの中心付近から大きくは ずれてしまっています.この重心をプロトタイプとして求めた図4.5の識別面では,

(23)

46 第4章 パターンを識別しよう 図4.4 重心をプロトタイプにして うまくゆく例 図4.5 重心をプロトタイプにすると 問題がある例 クラスω1に属するいくつかのデータがω2に判別され,逆にクラスω2に属するいく つかのデータがω1に判別されてしまいます.このような誤識別を避けるにはどうす ればよいのでしょうか. 特徴空間が2次元で,かつデータが線形分離可能ならば,このような誤識別が起こ らないような識別面を直観的に決めることはそれほど難しくないように思えます.し かし特徴空間が4次元以上の場合は,データが散らばっている空間が可視化できない ので,直観的に識別面を決めることはできません. したがって,学習データから識別面を求めるなんらかの機械的手続き(アルゴリズ ムあるいはプログラムといってもよいです)が必要になります.

4.2

パーセプトロンの学習規則

図4.6に,識別面を動かして,うまく識別できるようにする操作のイメージを示し 図4.6 識別面の学習のイメージ

(24)

10.2 音響モデルの作り方 133 ます. これらの積を最大にする単語列を認識結果とするのですが,出現可能な単語列の数 が膨大になる大語彙連続音声認識では,式(10.2)の値をすべての単語列wについて 求めることはできません.最大値をとりそうな候補に限定して計算を行う,いわゆ る探索を行う必要があります. この音響モデル・言語モデル・探索が図10.1の識別部を構成して,系列パターンの 連続的な認識という,パターン認識の中のもっとも難しい問題への一つの解決法を与 えています.本章の以降の節では,音響モデルの作り方・使い方・鍛え方について説 明し,第11章でツールを使って音響モデルを作成してみます.言語モデルについて は,第12章と第13章で,探索については第14章で詳しく説明します†1

10.2

音響モデルの作り方

音響モデルとは,式(10.2)右辺の条件付き確率p(x1, . . . ,xt|w1, . . . , wn)の値を与 えてくれるメカニズムのことです.一般的にこの問題は,クラスの系列が与えられた ときに,ある特徴ベクトルの系列が観測される確率を求める問題と捉えることができ ます. 単語列の長さと特徴ベクトル系列の長さが同じであれば問題は簡単です.一つのク ラスwが与えられたときに,一つの特徴ベクトルxが観測される確率は,第8章で 説明した方法でクラス分布関数p(x|w)を推定することで得られます.この計算を系 列の長さだけ繰り返し,それらをかけ合わせれば求める確率になります. しかし連続音声認識の問題では,ある単語がいくつの特徴ベクトルに対応するかは わかりません.単語列からある特徴ベクトルの系列が生成される確率はどうやって求 めればよいでしょうか. まず,もっとも単純化した問題から特徴ベクトル系列と確率の関係を考えましょう. 認識対象は単語とします.つまり,p(x1, . . . ,xt|w)を求める問題を考えます.単語 は音素の系列からなるものとします.そして特徴ベクトルを離散化した記号で表現す るものとします.たとえば,音素/a/に対応する特徴ベクトルをAと表現します†2. 設定

1

いま,各音素の時間長をすべて等しいものとし,3フレーム†3 で1音素に対応す †1 音声認識の理論的な詳細に関しては,河原による教科書[10]や拙著[11]をご覧ください. †2 特徴空間を超平面によって分割し,音素/a/に対応する区画に A という名前を付けたと考えます. †3 フレームとは特徴ベクトル一つに対応する入力区間です.特徴ベクトルを数える単位と考えてもよいです.

(25)

134 第10章 声をモデル化してみよう —音響モデルの作り方・使い方・鍛え方 るとします.また,特徴ベクトルの抽出処理に誤りは起こらないものとします.すな わち,/a/ と発声すると,特徴ベクトルとして必ずAが三つ得られるとします.そ うすると,単語「あす」(/a/ /s/ /u/)の音響モデルとしては,特徴ベクトル系列が AAASSSUUUのときだけ値1を,これ以外の系列には値0を出力するメカニズムを 作ればよいことになります. このような入出力を行うモデルは,図10.2で示すような,各状態で記号を出力す るオートマトン†1 で作成することができます.丸は状態を表し,矢印は遷移を表し ます. 図10.2 オートマトンによる音響モデル 一番左端の斜め方向の矢印の付いた丸が初期状態です.また,一番右端の二重丸 は最終状態です.これらはオートマトンにおける処理の開始と終了を示す特殊な状態 で,これらの状態からは記号は出力されません.初期状態と最終状態の間にある各状 態では,その状態に対応付けられた記号を出力するものとします.このオートマトン は3音素(/a/ /s/ /u/)からなる単語「あす」の音響モデルです.各音素は3フレー ムの記号に対応するので,状態数を9とします†2. このオートマトンの動作は,初期状態から始まります.初期状態から一つ右隣の状 態に遷移してAを出力し,その後矢印で示された右隣の状態へ遷移します.遷移し た後の状態でも,その状態に対応付けられた記号を出力し,また次の状態へ遷移しま す.つまり,図10.2に示すオートマトンは,記号列 AAASSSUUUを出力する機械 とみなすことができます. 与えられた特徴ベクトル系列がこのオートマトンから出力された確率を求めると きは,オートマトンの出力記号と特徴ベクトル系列を前から順に比較します.記号が 一致すれば次の状態へ進み,一致しなければそこで終了です.この手順で最終状態に 達することができれば,観測された系列がこのオートマトンから出力された確率は1 で,最終状態に達することができなければ確率は0です. †1 一般的なオートマトンは,入力に従って内部状態を変化させ,入力記号列が受理できるかどうかを判定する 仮想機械として説明されますが,この例のように,入力がなく,状態を移る(状態遷移とよびます)ごとに 記号を出力するという定式化も可能です. †2 初期状態と最終状態を含めると 11 状態になります.

(26)

10.2 音響モデルの作り方 135 すなわち,P (AAASSSUUU|あす)の値のみが1で,P (AAASSUUU|あす)や, P (AAASSSUUE|あす)の値は0になります. 設定

2

さて,問題を少しだけ現実に近づけましょう.設定1では特徴ベクトル系列には誤 りがないものとしましたが,現実にはそんなことはありません.入力信号に存在する 雑音やさまざまな要因による入力信号のぶれが原因で,離散記号に対応付けるときに 誤りが起こりえます.設定2では,各フレームにおいて一定の確率で誤りが生じるも のとします.たとえば,音素/a/ が入力されたとき,確率0.8で特徴Aが観測され, 確率0.1で特徴Iが,確率0.1で特徴Oが観測されるとします. このような設定で記号列の確率を求める場合は,確率オートマトンを使い,各状態 で確率的に記号が出力されるものとします(図10.3).これらの確率を出力確率とよ びます. 図10.3 確率オートマトンによる音響モデル この設定で,図10.3の確率オートマトンから特徴抽出誤りのまったくない特徴ベ クトル系列 AAASSSUUUが出力される確率は, P (AAASSSUUU|あす) = 0.8× 0.8 × 0.8 × 0.7 × 0.7 × 0.7 × 0.7 × 0.7 × 0.7 = 6.0236288× 10−2 となり,少し特徴抽出誤りが含まれた特徴ベクトル系列AAISSSUEUが出力される 確率は, P (AAISSSUEU|あす) = 0.8× 0.8 × 0.1 × 0.7 × 0.7 × 0.7 × 0.7 × 0.1 × 0.7 = 1.075648× 10−3 となります.誤りが多く含まれるほど確率が下がります.

(27)

136 第10章 声をモデル化してみよう —音響モデルの作り方・使い方・鍛え方 設定

3

さらにもう一つの制約を取り除いて,より現実の問題に近づけます.設定3では設 定2に加えて,1音素あたりのフレーム数がわからないものとします.こうなると簡 単にはいきません.記号列の長さが不明なので,状態をいくつ用意すればよいのかわ かりません. この問題は,確率オートマトンのそれぞれの状態に,自分に戻ってくる状態遷移 (自己遷移またはループといいます)を付けることで解決します.こうすると,状態 数以上の任意の長さをもつ特徴ベクトル系列に対して確率を得ることができます. また,各音素での特徴ベクトル系列の平均的な長さを表すために,状態遷移にも確 率を付けます.この確率を遷移確率とよびます.たとえば,/a/ という音素が平均的 に4フレームの長さがあるとすれば,図10.4の状態S1を3回回って状態S2に遷移 するという可能性がもっとも高いということにします.自己遷移を3回,次状態への 遷移を1回通るので,それぞれに0.75,0.25という確率を割り振ります. 図10.4 自己遷移付き確率オートマトンによる音響モデル この自己遷移付き確率オートマトンを用いると,特徴ベクトル系列AAISSTSSUE が出力される確率は, P (AAISSTSSUE|あす) = P (SB → S1)· P (A |S1)· P (S1→ S1)· P (A |S1)· · · · · P (E |S3)· P (S3→ SE) = 1.0× 0.8 × 0.75 × 0.8 × · · · × 0.1 × 0.1 = 1.9611853× 10−7 となります. 設定

4

ここまでは説明を簡単にするために,各状態で出力可能な特徴ベクトルをいくつか

(28)

10.3 音響モデルの使い方 137 に制限してきました.たとえば図10.4の状態S1では,特徴ベクトルはA, I, Oのい ずれかしか出力されません.しかし,このような制限を付けると,ある状態で出力確 率が0の特徴ベクトルが,系列全体でたった一つ観測されただけで,系列全体の確率 が(他の部分がいくら高い確率になっていたとしても)0になってしまいます.この 問題を避けるために,実際にはすべての状態ですべての特徴ベクトルに対してなんら かの確率を割り当てます(図10.5). 図10.5 すべての状態ですべての記号が出力可能なオートマトン ところが,そうすることによって,やっかいな問題が新たに一つ発生します.たと えば特徴ベクトル系列AAISSTSSUEにおいて,最初の特徴ベクトルAは図10.5の 状態S1が出力したものであることが,オートマトンの構造から決まります.しかし 2番目の特徴ベクトルAは,状態S1で自己遷移して再度状態S1が出力したのか,状 態S1から状態S2へ遷移して状態S2が出力したのかわからなくなります. つまり,ある系列に対して,もしそれが最終的に受理されたとしても,オートマト ンのどの状態を通ってきたのかがわからないのです.このような性質を非決定性とい います.この非決定性は確率の計算をかなり複雑にします. このような確率的非決定性オートマトンは,別名隠れマルコフモデル(hidden Markov model; HMM)とよばれます.出力系列が与えられたときに,どのような 状態遷移が行われてきたかが隠れているので,このような名前が付いています.近年 実用化されている音声認識システムの音響モデルには,このHMMがよく用いられて います.

10.3

音響モデルの使い方

ここではHMMを使って,観測された系列の確率を求めてみましょう.まず,可能 な系列をすべて求めてその和を計算する単純な方法から入り,計算を効率よくする方

(29)

138 第10章 声をモデル化してみよう —音響モデルの作り方・使い方・鍛え方 法や,近似的な結果を求める方法を説明します.

10.3.1 HMM

における確率計算 HMMの出力確率計算のもっとも単純な方法では,すべての可能な状態遷移系列を 求め,それらの確率の和を求めます.ここでは例題を通じて,その計算方法を説明し ます. 例題10.1 図10.6に示すHMMが与えられているとき,特徴ベクトル系列“AAB”の出 力確率を求めよ. 図10.6 例題10.1のHMM 解答例 系列 “AAB”がこのHMMから出力されるということは,状態遷移系列に おいて,最初の記号Aは状態S1から,最後の記号Bは状態S2から出力されるという 制約がつきます.そして系列長が3で,状態数が2なので,どちらかの状態で一度自 己遷移します.したがって,可能な状態遷移系列はSB → S1 → S1 → S2 → SESB→ S1→ S2→ S2→ SEで,それぞれの確率を求めると以下のようになります. P (SB → S1)· P (A |S1)· P (S1→ S1)· P (A |S1)· P (S1→ S2) · P (B |S2)· P (S2→ SE) = 1.0× 0.6 × 0.8 × 0.6 × 0.2 × 0.5 × 0.5 = 0.0144 P (SB → S1)· P (A |S1)· P (S1→ S2)· P (A |S2)· P (S2→ S2) · P (B |S2)· P (S2→ SE) = 1.0× 0.6 × 0.2 × 0.5 × 0.5 × 0.5 × 0.5 = 0.0075 これらは同時には起こりえない事象なので,求める確率はこれらの和0.0144 + 0.0075 = 0.0219となります. 次は状態数が多いHMMを使って,もう少し長い系列の確率を計算してみましょう. † 開始状態 SBと最終状態 SEは記号を出力しないので,状態数からは除外します.

(30)
(31)

252

索 引

■ 英数字 A*探索 197 Baum–Welchアルゴリズム 144, 160 BNF 169 EMアルゴリズム 116 forward-backwardアルゴリズム 146 forwardアルゴリズム 140 Good–Turing法 185 HMM 137 HMM構成ファイル 152 Julius 171 Kneser–Ney法 188 k-NN法 58 LSTMセル 102 MAP識別 104 MFCC 27 MMDAgent 211 Modified Kneser–Ney法 188 NN法 8 N-グラム言語モデル 182 ReLU 98 SIFT特徴量 28 SRGS 176 SRILM 190 VoiceXML 177 WFST 199 Widrow–Hoffの学習規則 66 Witten–Bell法 188 ■ あ 行 アンダーフロー 110 エッジフィルタ 24 オートエンコーダ 97 オートマトン 134, 171 オーバーフロー 110 重 み 48, 57 重み空間 50 重み付き多数決 59 重みベクトル 49 音響モデル 132 音 素 25 ■ か 行 解領域 52 ガウスカーネル関数 82 過学習 95, 125 学 習 47 学習係数 52 学習データ 9 確率オートマトン 135 確率的最急降下法 69, 90 確率的非決定性オートマトン 137 確率密度関数 107 隠れマルコフモデル 137 加算法 185 活性化関数 87 カーネル関数 81 カーネルトリック 82 加法性の雑音 21 木構造 170 逆フーリエ変換 231 キャリブレーション 121 教師信号 62 共振周波数 26 共分散行列 233 局所最適解 93, 158 区分的線形 55 区分的線形識別面 56 クラス 3 クラス間分散 122 クラスタ 9 クラス内分散 122 クラス内分散・クラス間分散比 122 クラス分布 107

(32)

索 引 253 グリッドサーチ 126 言語モデル 132 交差確認法 118 合成関数の微分の公式 91 勾配消失問題 96 誤差逆伝播法 89 コーパス 180 混合分布 115 ■ さ 行 最急降下法 65 最近傍決定則 8 最終状態 134 最小二乗法 63 最適解 194 最尤推定 110, 182 最良優先探索 196 削除推定法 185 サポートベクトル 74 サポートベクトルマシン 74 閾値関数 69 閾値論理ユニット 87 識別関数 47 識別辞書 7 識別部 7 識別面 9, 44 識別率 72 シグモイド関数 92 事後確率 104 事後確率最大化識別 104 自己遷移 136 事前学習法 97 事前確率 107 シナプス 86 終端記号 168 周波数分析 17 主成分分析 38 出力確率 135 出力層 88 主問題 235 受容野 100 状態遷移系列 138 乗法性の雑音 21 初期状態 134 初期モデル 144 スコア 59 スペクトル 18 スペクトルサブトラクション法 22 スペクトログラム 19 正解クラスラベル 9 正規分布 108 正規文法 170 正定値関数 82 ゼロ頻度問題 183 遷移確率 136 線形分離可能 44 線形補間法 187 漸進的処理 208 双対問題 235 ソフトマックス関数 88 ■ た 行 対数尤度 110 多項式カーネル関数 82 畳込み演算 23 畳込み層 99 畳込みニューラルネットワーク 24, 99 縦型探索 195 単語辞書 168 単語認識精度 203 単語認識率 203 探 索 133, 194 単純ベイズ法 114 逐次最小最適化 76 逐次的処理 207 中間層 88 調音結合 149 長・短期記憶 102 ディクテーション 180 ディープニューラルネットワーク 17, 95 テストセット 183 データスパースネス 181 統計的言語モデル 166, 180 統計的パターン認識 132 特徴空間 6 特徴抽出 6 特徴ベクトル 7 トップダウンパージング 170 トライフォン 149 トランスデューサ 209

(33)

254 索 引 トレリス 139 ドロップアウト 98 ■ な 行 入力層 88 ニューラルネットワーク 87 ニューロン 86 ノンパラメトリックな方法 110 ■ は 行 ハイパーパラメータ 125 白色雑音 21 パーセプトロン 49 パーセプトロンの学習規則 52 パーセプトロンの収束定理 52 パターン 3 パターン行列 32 パターン認識 3 パターンの変動 6 バックオフ係数 188 バックオフスムージング 188 バッチ法 68 パラメータ 124 パラメトリックな方法 110 非決定性 137 非終端記号 168 非線形識別面 89 非線形変換 80 ビタビアルゴリズム 141 一つ抜き法 119 ビーム探索 195 ビーム幅付き最良優先探索 198 ヒューリスティックス 196 ヒューリスティック探索 196 標準化 31 標準偏差 232 標本化 14 標本化周波数 14 標本化定理 15 フィードバック 87 フィードフォワード型 88 フィルタ 23 フォルマント 26 副次識別関数 56 副次識別関数の個数 57 フーリエ解析 230 フーリエ級数展開 230 フーリエ変換 231 プーリング層 99 プロトタイプ 7 分割学習法 117 分 散 231 文 法 166 文法記述 166 文脈自由文法 169 平 均 231 平均値フィルタ 23 ベイズ誤り確率 123 ベイズ推定 115 ベイズの定理 105 ベースライン 59 補間法 186 ボトムアップパージング 170 ■ ま 行 前処理 5 マージン 74 マルチパス探索 197 ミニバッチ法 69 無音区間 172 メディアンフィルタ 23 メルフィルタバンク 20 モノフォン 149 ■ や 行 尤 度 110 横型探索 195 ■ ら 行 ラグランジュ関数 75 ラグランジュ係数 75 ラグランジュの未定乗数法 75, 234 リカレントニューラルネットワーク 101, 189 量子化 14 量子化ビット数 14 ループ 136

(34)

著 者 略 歴 荒木 雅弘(あらき・まさひろ) 1993年 京都大学大学院工学研究科情報工学専攻 博士後期課程研究指導認定退学 同 年 京都大学工学部助手 1997年 京都大学総合情報メディアセンター講師 1998年 博士号(工学)取得(京都大学) 1999年 京都工芸繊維大学工芸学部助教授 2007年 京都工芸繊維大学大学院工芸科学研究科准教授 現在に至る 編集担当 富井 晃・宮地亮介(森北出版) 編集責任 藤原祐介・石田昇司(森北出版) 組 版 ウルス 印 刷 創栄図書印刷 製 本 同 フリーソフトでつくる音声認識システム(第2版) —パターン認識・機械学習の初歩から対話システムまで— ©荒木雅弘 2017 【本書の無断転載を禁ず】 2007年 10 月 10 日 第 1 版第 1 刷発行 2016年 11 月 22 日 第 1 版第 11 刷発行 2017年 4 月 11 日 第 2 版第 1 刷発行 著 者 荒木雅弘 発 行 者 森北博巳 発 行 所 森北出版株式会社 東京都千代田区富士見 1–4–11(〒102–0071) 電話 03–3265–8341 / FAX 03–3264–8709 http://www.morikita.co.jp/ 日本書籍出版協会・自然科学書協会 会員 <(社)出版者著作権管理機構 委託出版物> 落丁・乱丁本はお取替えいたします.

参照

Outline

関連したドキュメント

C =&gt;/ 法において式 %3;( のように閾値を設定し て原音付加を行ない,雑音抑圧音声を聞いてみたところ あまり音質の改善がなかった.図 ;

 この論文の構成は次のようになっている。第2章では銅酸化物超伝導体に対する今までの研

 第一の方法は、不安の原因を特定した上で、それを制御しようとするもので

それでは資料 2 ご覧いただきまして、1 の要旨でございます。前回皆様にお集まりいただ きました、昨年 11

先に述べたように、このような実体の概念の 捉え方、および物体の持つ第一次性質、第二次

このたび枚方市では、学生の皆さんが日常生活の中で感じていることやご意見・ご希望を

看板,商品などのはみだしも歩行速度に影響をあたえて

チツヂヅに共通する音声条件は,いずれも狭母音の前であることである。だからと