基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,符号理論(ハフマン符号化,ランレングス符号化),オートマトン(有限オートマトン,状態遷移表,状態遷移図),正規表現,形式言語(BNF,逆ポーランド表記法(後置表記法)),AI(人工知能,機械学習(教師あり学習,教師なし学習,強化学習),ニューラルネットワーク(パーセプトロン,入力層,出力層,隠れ層),ディープラーニング(深層学習))についてシンプルにまとめています。
符号理論
ハフマン符号化
ハフマン符号化とは,文字列(や記号列)を符号化する際,出現回数の多い文字には短いビット列を,出現回数の少ない文字には長いビット列を割り当て,全体のデータ量を最小(1文字(1記号)当たりの平均ビット長を最小)にする圧縮方法のことをいいます。
※ 2分木構造を使用する
※ ハフマン符号化は,JPEGやZIPなどの圧縮方式として利用されている
例)あるメッセージの中に含まれている文字,a,b,c,dの符号化(出現頻度は,それぞれ,50%,25%,15%,10%であるとする)。
ランレングス符号化
ランレングス符号化とは,文字列(や記号列)を符号化する際,同じ文字が繰り返し出現する部分を「反復回数と文字」という形に置き換えて,全体のデータ量を少なくする圧縮方法のことをいいます。
オートマトン
オートマトンとは,コンピューターの状態をモデル化したものをいいます。内部に状態を保持し,外部からの入力に応じて,ある状態から別の状態に遷移し出力します。
有限オートマトン
有限オートマトンとは,状態や遷移の数が有限個のものをいいます。
正規表現
正規表現とは,ある文字列(や記号列)の中にメタ文字を埋め込んで表現するものをいいます。代表的なメタ文字には,次のようなものがあります。
※ メタ文字(メタキャラクタ)…特別な意味を与えられた記号など
形式言語
形式言語とは,特定の目的のために作られた言語のことをいいます。
BNF(Backus-Naur Form)
BNFは,プログラム言語の定義などに利用されている形式言語です。
逆ポーランド表記法(後置表記法)
逆ポーランド表記法とは,演算式などを記述する際の表記法(のひとつ)のことをいいます。演算子を被演算子の後ろに記述します。
※ ポーランド表記法…演算子を非演算子の前に記述する表記法
演算式の計算
逆ポーランド表記法で記述された演算式は,スタックを用いて計算することができます。
AI(Artificial Intelligence;人工知能)
AI(人工知能)とは,(人間と同じような)知的なコンピュータープログラムを作るための技術のことをいいます。
機械学習
機械学習とは,(データから特定のパターンを見つけ出すような)人間が行っている学習能力をコンピューターに持たせるための技術のことをいいます。
教師あり学習 | データと,その正解を与えて規則性などを学習させ,未知のデータに対して正誤を判断できるようにする方式 例)需要予測など |
教師なし学習 | データのみを与えて(正解は与えない),規則性や特徴などを見つけ,グループ化する方式 例)クラスタリング |
強化学習 | それぞれの行動に対して得点(評価,報酬)を与え,最善の(最も多く点が取れる)行動を学習する方式 例)ロボットの制御,将棋や碁のゲーム |
ニューラルネットワーク
ニューラルネットワークとは,人間の神経網を模倣したモデルのことをいいます。
※ パーセプトロン…ニューロン(人間の脳にある神経細胞)をモデル化したもの
ディープラーニング(深層学習)
ディープラーニング(深層学習)とは,ニューラルネットワークの隠れ層が複数あるものを使用して,より複雑な学習をできるようにしたものをいいます。
まとめ
今回は,符号理論,オートマトン,正規表現,形式言語,AIについて,シンプルにまとめてみました。各内容については,基本的な内容が理解できていればよいと思います。では,また。