システムに挑戦する アンドールシステムサポート株式会社

MENU

数学を学ぶ

電脳寺子屋

電脳寺子屋」では、YouTubeでマイコンに関する情報を無料で分かり易く紹介します。

数学を学ぶシリーズについて

電脳寺子屋「数学を学ぶシリーズ」では、組み込みのソフトウェア開発を行う上で役立つ技術的な話を紹介します。
Armを学ぶシリーズ」で紹介しているArmプロセッサやAIの技術を理解する上でも役立つ内容を紹介していく予定です。

電脳寺子屋 電卓で学ぶ「符号無し整数」

電卓で学ぶ「符号無し整数」では、電卓を通して、日常生活の中で使用している「10進数」の「符号無し整数」の値を、 コンピュータの内部で利用しる「2進数」で表現する方法について解説します。

電脳寺子屋 数学を学ぶ「2進数と16進数」

数学を学ぶ「2進数と16進数」では、「2進数」と「16進数」の関係について解説します。

電脳寺子屋 数学を学ぶ「足算で引算」

数学を学ぶ「足算で引算」では、「足算だけで、引算を行う方法」と「2進数で負の値を表現する方法」について解説します。
電脳寺子屋 電卓で学ぶ「符号無し整数」の関連動画です。

電脳寺子屋 数学を学ぶ「符号付き整数」

数学を学ぶ「符号付き整数」では、「符号無し整数」について解説します。
符号付き整数で利用されている補数の概念については、関連動画の電脳寺子屋 数学を学ぶ「足算で引算」をご覧ください。

電脳寺子屋 電卓で学ぶ「浮動小数点」

電卓で学ぶ「浮動小数点」では、「電卓」を例にして「浮動小数点」の概念を簡単に解説します。

電脳寺子屋 数学を学ぶ「浮動小数点の用途と種類」

数学を学ぶ「浮動小数点の用途と種類」では、浮動小数点の用途と、各用途向けに利用される浮動小数点形式の種類を紹介します。
浮動小数点の基本的な概念につきましては、関連動画の電卓で学ぶ「浮動小数点」をご参照ください。

電脳寺子屋 電卓で学ぶ「固定小数点」

電卓で学ぶ「固定小数点」では、浮動小数点演算のハードウェアが利用できない場合や、浮動小数点演算よりも、より高速な演算が求められる場合に、組み込みのソフトウェアで利用されている固定小数点について紹介します。

数学を学ぶ「簡単に暗記できる9桁までの特殊な自乗の値」

この動画は、「電脳寺子屋 電卓で学ぶ「浮動小数点」」の補足説明です。
「1」が連続する値の自乗の値の計算結果は、10進数の場合は9桁まで、n進数の場合n-1桁の値まで規則正しい、ピラミッドの様な値となります。
数学的な説明については「扇数」と「金字塔数」をご覧ください。

電脳寺子屋 数学を学ぶ「扇数と再帰関数 – 組み込み開発の作法 」

扇数」を返す「扇関数」の実装方法を通して「再帰関数」と組み込みにおける「スタック・メモリの影響」について説明ます。

電脳寺子屋 数学を学ぶ「扇数とPython」

扇数」を返す「扇関数」を「C言語」で実装した例と、「Python」で実装した例を通して、C言語に馴染んでいる方向けに、C言語の記述例とPythonの記述例を比較する形で、 Pythonの文法や特長の一部を紹介させて頂きます。

扇数について 櫛数について 金字塔数について 扇階段数について

電脳寺子屋 数学を学ぶシリーズについて

現在話題の、大規模言語モデル(LLM)、生成AI、AIエージェントを実現するために、プロセッサ内部では、膨大な数値計算を行っています。
AIに関連する技術は、今日劇的な進歩を遂げており、日進月歩で劇的に技術的な変化が起きておりますが、数値の計算などの本質的な部分は、変わっておりません。 その性能向上の仕組みを理解する上でも、コンピュータ内部の数値表現の仕組みを理解する事が必要となります。

Armのプロセッサ内部の中でも利用される、2進数と16進数、符号無し整数、符号付き整数、固定小数点、浮動小数点の仕組みを紹介します。
Armのプロセッサ内部では、NEON、Heliumテクノジーや、NPUとしてはEthos-Uシリーズなどが、AIの推論を高速化するために活用されていますが、これらの技術の中でも、 数値表現はやはり基礎となり必要となる共通の知識となります。

高級言語から、コンパイラが、マシン語を生成してくれるように、 自然言語で書かれた仕様書から、現在では、生成AIやAIエージェントがコードを生成する時代になりました。
これは、C言語とコンパイラ技術の向上により、機械語やニーモニックを知らなくても、実行コードを生成できるようになったように、なったように、 プログラム言語自体を知らなくても、実行コードを生成できる時代が始まった事を意味します。
最終的なC言語のソースコードをもとにコンパイラが生成した実行コードに関する責任は、ビルドツールではなく、 実行コードの提供者にあるように、AIによって生成されたソースをもとにビルドされた実行コードの責任も、 実行コードの提供者にあります。 EULA(エンドユーザーライセンスアグリーメント)によって、責任の所在が変わることはありますが、責任を取るのは、道具ではなく、 常に道具を運用する人間の側にあります。
AIがコードを生成する時代では、単純なコーディング技術よりも、 より上位の仕様の作成と、生成されたコードの検証を適切に行うための技術の重要性がより大きくなる時代になったという事を意味しています。
どんなに技術が進歩しても、数学の基礎的な技術が役立つことは変わりません。
数学を学ぶシリーズでは、コードの検証に役立つ基礎的な知識を紹介します。

なぜPythonを紹介するのか?

組み込み開発では、一般的にC言語が利用されます。
作成したプログラムが仕様に沿って、正しく動作している事を確認するために、期待値を計算するにはどうすれば良いのでしょうか?
期待値をテストシステムと、同じ処理系や、同じアルゴリズムを使用して、同じモデルを利用して計算した場合にどのような事が起きるでしょうか?
作成した期待値に、処理系や、アルゴリズムやモデルに欠陥が含まれている場合には、比較対象となる期待値にも、同様の欠陥が生じる恐れがあります。
C言語でテスト対象のプログラムの動作と比較するための期待値を求めた場合、利用するライブラリやコンパイラなどの処理系に依存する欠陥があった場合、期待値にも不具合が生じ、テストの意味をなさない恐れがあります。
同一の手段を利用し、同一の欠陥によって、不具合を検出できない問題を避けるには、別の手段を併用する事をお勧め致します。
例えば、表計算ソフトや、数値計算ツール、別の言語の使用などが考えられます。
C言語に替わる、別の手段の候補として、Python という言語が良い候補となります。
Pythonは、オープンソースのため導入に掛かる追加のコスト負担が少なく、 C言語のプログラマにとって習得が容易で、ライブラリが豊富な高級言語です。
豊富なライブラリやフレームワークを持つことから、現在AIの開発にも利用されている、人気のあるモダンな言語です。
また、整数については最大値の制限が事実上ないという特徴から、期待値として必要な理論値を求める為の用途にも適しています。
浮動小数点を利用した計算についても、ライブラリを活用する事で、倍精度を超える精度をもった値を得る事も可能です。

Arm社純正開発ツール

Arm社純正開発ツール

お知らせ

PAGETOP