最近では、いろいろな分野でまたAI(Artificial Intelligence)が注目を集めています。特に碁やチェスなどの知的ゲームで人間に勝ってしまうようなAIは、何か特別な存在のように考えられがちです。しかし、当然ながらAIもコンピューターのプログラムとして動いています。私たちがPlayground上で動かしてみる単純なプログラムと、基本的な動作原理は何も変わりません。
コンピューターでは、すべてのデータは1か0かしかない2進数で表されているという話は聞いたことがあるでしょう。実はデータだけでなく、プログラムが何かを判断する際の基準にもイエスかノーかのふたとおりしかありません。その単純明快な判断を、気の遠くなるほど組み合わせ、複雑で知的な判断ができるようにしたのがAIなのです。単純な判断をどのように組み合わせるかということこそが、プログラミングの真髄と言えるでしょう。
基準を設定して判断する
コンピューターが何らかの処理を実行するのかしないのか、そのイエスかノーかの判断をする際の基準となるのは、前回に登場した真偽値です。もちろん真ならイエスで実行、偽ならノーで実行しない、ということになります。
と言うと、可能性はどちらも2分1で、常にフィフティフィフティなのかと誤解されるかもしれませんが、そんなことはありません。前回に登場した比較演算を使えば、判断の分かれ目となるポイントは自由に設定できます。例えば、0から100までの得点のうち、75点以上は合格、それより小さければ不合格といった判断は、得点をpとすれば、
p >= 75
という式で表せるでしょう。pが75以上ならば、この式の値は真となり、75より小さければ偽となるからです。
ちなみに、このように判断の分かれ目となる値のことを閾値(「しきいち」または「いきち」)と呼びます。これは、プログラミングだけでなく、電子工学や化学、あるいは心理学などでも使う重要な考え方です。上の例では75が閾値になっているというわけです。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ