ゼロから始めるDeepLearningを勉強するには、まず論理演算について知っておく必要があります。
コンピュータは演算を行うものです。また、コンピュータは2進数を扱いますので、演算の仕組みもシンプルです。
演算は数学で使う四則演算を思い浮かべますが、もっと一般化すると「ある集合の要素間に一定の法則を適用して、他の要素を作りだす操作」のことです。つまり、四則演算のようにデータに何らか加工(足したり、引いたりなど)を施して結果を得ることを言います。
演算には四則演算の他に論理演算がありますが、論理演算から四則演算を導き出せますので、論理演算は最も基本的な処理ということができます。そしてこの基本的な論理演算を組み合わせることで複雑な処理を行なっています。
論理演算について
論理演算とは、論理式において、論理演算子などで表現される論理関数(ブール関数)を評価し、変数(変項)さらには論理式全体の値を求める演算です。つまり、あるデータをtrueの値、falseの値を使って別のデータを作るものとなります。
論理演算には、「AND演算」、「OR演算」、「XOR演算」、「NOT演算」の4種類があります。
論理演算は,2進数を扱いますので、「0」または「1」だけを演算し,その結果も「0」または「1」になります。
論理演算の結果を表す表のことを「真理値表」と言います。
1を真として0を偽とするとAND演算は次の真理値表で表すことができます。
AND演算
aかつbが真なら結果は真になります。別名「論理積」
a | b | a AND b |
---|---|---|
1 | 1 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
OR演算子
aまたbが真なら結果は真になります。別名「論理和」
a | b | a OR b |
---|---|---|
1 | 1 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
0 | 0 | 0 |
XOR演算子
演算する値が同じなら結果は0になります。別名「排他的論理和」
a | b | a XOR b |
---|---|---|
1 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
0 | 0 | 0 |
NOT演算子
単項演算で1つの値を反転します。別名「論理否定」
a | NOT a |
---|---|
1 | 0 |
0 | 1 |
AND演算子はマスク機能がある
AND演算はマスクする(偽にする)機能があります。次の真理値表を見て下さい。
bを全て1にすると結果はaと同じになります。
a | b | a AND b |
---|---|---|
1 | 1 | 1 |
0 | 1 | 0 |
1 | 1 | 1 |
0 | 1 | 0 |
bを全て0にすると全て0になります。つまりマスク(偽false)された状態になるのです。
a | b | a AND b |
---|---|---|
1 | 0 | 0 |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
OR演算子はセットする機能がある
OR演算子はセットする(真にする)機能があります。次の真理値表を見て下さい。
bを全て1にするとaも全て1になります。
a | b | a OR b |
---|---|---|
1 | 1 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
0 | 1 | 1 |
bを全て0にすると結果はaと同じになります。
まず、これらの知識を前提にパーセプトロンに入るとわかりやすいと思います。