情報に関する理論の基礎まとめ【符号理論・オートマトン・AIまで解説】

情報に関する理論のブログに関するアイキャッチ画像 基礎理論
広告

 情報処理技術者試験では,データの扱い方や文字列・状態の解析,さらにはAIの基礎まで,幅広く「情報に関する理論」を理解していることが求められます。符号化やオートマトン,正規表現,形式言語,機械学習やディープラーニングの基本的な考え方を押さえていますか?

符号理論=データを効率よく表現・圧縮する方法

オートマトン=状態と入力の関係をモデル化する方法

正規表現=文字列のパターンを表す方法

形式言語=特定目的のために作られた規則的な言語

AI=データから学習し判断・予測する技術

 符号理論では,ハフマン符号化やランレングス符号化を使ったデータ圧縮のしくみを理解し,オートマトンでは有限状態や状態遷移の考え方を押さえます。正規表現や形式言語では文字列操作や文法の基本を整理し,AIでは機械学習やディープラーニングの概念を理解することが重要です。

広告

符号理論とは

ハフマン符号化とは

 ハフマン符号化とは,文字列(や記号列)を符号化する際,出現回数の多い文字には短いビット列を,出現回数の少ない文字には長いビット列を割り当て,全体のデータ量を最小(1文字(1記号)当たりの平均ビット長を最小)にする圧縮方法のことをいいます。

※ 2分木構造を使用する

※ ハフマン符号化は,JPEGやZIPなどの圧縮方式として利用されている

例)あるメッセージの中に含まれている文字,a,b,c,dの符号化(出現頻度は,それぞれ,50%,25%,15%,10%であるとする)。

ハフマン符号に関する説明画像

ランレングス符号化とは

 ランレングス符号化とは,文字列(や記号列)を符号化する際,同じ文字が繰り返し出現する部分を「反復回数と文字」という形に置き換えて,全体のデータ量を少なくする圧縮方法のことをいいます。

ランレングス符号化に関する説明画像

オートマトンとは

 オートマトンとは,コンピューターの状態をモデル化したものをいいます。内部に状態を保持し,外部からの入力に応じて,ある状態から別の状態に遷移し出力します。

有限オートマトンとは

 有限オートマトンとは,状態や遷移の数が有限個のものをいいます。

オートマトンの説明画像

※ 状態遷移図,状態遷移表の詳細は,「ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計の基礎まとめ(状態遷移図とは)」を参照

広告

正規表現とは

 正規表現とは,ある文字列(や記号列)の中にメタ文字を埋め込んで表現するものをいいます。代表的なメタ文字には,次のようなものがあります。

※ メタ文字(メタキャラクタ)…特別な意味を与えられた記号など

正規表現に関する説明画像

形式言語とは

 形式言語とは,特定の目的のために作られた言語のことをいいます。

BNF(Backus-Naur Form)とは

 BNFは,プログラム言語の定義などに利用されている形式言語です。

BNFに関する説明画像

逆ポーランド表記法(後置表記法)とは

 逆ポーランド表記法とは,演算式などを記述する際の表記法(のひとつ)のことをいいます。演算子を被演算子の後ろに記述します。

※ ポーランド表記法…演算子を非演算子の前に記述する表記法

逆ポーランド表記法に関する説明画像

逆ポーランド表記法での計算手順

 逆ポーランド表記法で記述された演算式は,スタックを用いて計算することができます。

逆ポーランド表記法で記述された演算式の演算に関する説明画像

広告

AI(Artificial Intelligence;人工知能)とは

 AI(人工知能)とは,(人間と同じような)知的なコンピュータープログラムを作るための技術のことをいいます。

AIの説明画像

機械学習とは

 機械学習とは,(データから特定のパターンを見つけ出すような)人間が行っている学習能力をコンピューターに持たせるための技術のことをいいます。

教師あり学習データと,その正解を与えて規則性などを学習させ,未知のデータに対して正誤を判断できるようにする方式
例)需要予測など
教師なし学習データのみを与えて(正解は与えない),規則性や特徴などを見つけ,グループ化する方式
例)クラスタリング
強化学習それぞれの行動に対して得点(評価,報酬)を与え,最善の(最も多く点が取れる)行動を学習する方式
例)ロボットの制御,将棋や碁のゲーム

ニューラルネットワークとは

 ニューラルネットワークとは,人間の神経網を模倣したモデルのことをいいます。

※ パーセプトロン…ニューロン(人間の脳にある神経細胞)をモデル化したもの

ニューラルネットワークの説明画像

ディープラーニング(深層学習)とは

 ディープラーニング(深層学習)とは,ニューラルネットワークの隠れ層が複数あるものを使用して,より複雑な学習をできるようにしたものをいいます。

まとめ

 今回は,符号理論,オートマトン,正規表現,形式言語,AIについて,基本情報技術者試験で押さえておきたい内容をシンプルにまとめてみました。符号理論では,出現頻度に応じたビット長割り当て(ハフマン符号化)や繰り返しをまとめる(ランレングス符号化)ことで,データ量を効率的に減らす考え方を理解しましょう。オートマトンでは,状態と遷移を整理し,有限オートマトンのしくみを理解することが大切です。正規表現・形式言語では,文字列のパターンや文法の規則を正確に捉えられるようにしておきましょう。AI(機械学習・ディープラーニング)では,データから学習し,未知のデータに対応するしくみを理解することが基本です。
 これらの分野は,概念理解と基本用語の整理が得点源となるポイントです。まずは考え方を押さえ,例題や過去問題に挑戦しながら理解を深めていきましょう。

 理解が進んだら,基本情報技術者試験の過去問題にもチャレンジしてみてください。

広告