DelphiはAIやディープランニングに向いていませんか


傘坊主  2023-02-17 23:12:02  No: 150799  IP: 192.*.*.*

AIやディープランニングなどを学ぶには、必ずと言ってpythonの名が上がりますが、
そもそもDelphiをはじめ、他の言語では不向きなのでしょうか。
その理由が分かりません。
もしご存じでしたら教えてください。
もし、Delphiでも可能ならば、どのような書籍で学べばいいですか。

編集 削除
mam  2023-02-20 01:48:51  No: 150805  IP: 192.*.*.*

>そもそもDelphiをはじめ、他の言語では不向きなのでしょうか。
pythonは、もともと数学関数がフリーライブラリとして充実しているから(数学に強い人が多く使う言語なので)開発しやすい学習しやすい
(python単体だと処理速度が超遅いので実際にはTensorFlowと組み合わせる、GUI系はゼロと言っても過言ではない)、
また全世界でpythonを使用する人が増えているのでAIを勉強しようとする割合が多くなっているのでしょうね。
学習しやすいという意味ではPythonが良いのでしょうね。
pythonは、本当に数学に強い人がライブラリ開発を多くしているみたいです。
例えば周波数解析で高速フーリエ変換(FFT)処理が必要な時にDelphiでは自力で関数を作りましたが
https://mam-mam.net/delphi/fft.html
pythonには元々ライブラリとして存在していました。
また、ハイパスフィルタやローパスフィルタもDelphiで自力で作りましたが
https://mam-mam.net/delphi/hid.html
pythonには元々何種類もライブラリとして存在していました。
ただしHID(ヒューマンインターフェースデバイス)から情報取得することは素のPythonでは不可能です。
Delphiは少し頑張れば可能でした。

私は以下のPythonの記事からDelphiに移植して学んでいます。(プログラムというより数学の世界です)
https://atmarkit.itmedia.co.jp/ait/articles/2202/09/news027.html

ちなみにAIやディープランニングを本格的に使うのであれば間違いなく
NVIDIA AI Enterpriseを使用するのが圧倒的に有利だと思います。
SDKで使用する言語はCUDA C++ および Fortranみたいです。高額ですが。

無料なら間違いなくTensorFlowでしょう。CPU版とGPU版もありますし。
コンパイルすればC++用DLLなので、ヘッダーファイルを使ってC++から使用できます。
DelphiもC++用ヘッダーファイルをコンバートすれば(ググれば多少出てきます)Delphiからも使えます。
当然Pythonでも環境構築して使えます。
TensorFlowは学習という意味ではかなり敷居が高そうですが。

他人が学習させて作った学習結果ファイルをただ単に楽して使うだけならTensorFlowLiteでしょう。
ちなみにDelphiを使用したTensorFlow Liteの記事やソースコードは以下です。
(TensorFlowLiteもC++ソースコードをコンパイルすればDLLとしてDelphiからもヘッダーファイルがあれば使えるわけですから。)
https://blogs.embarcadero.com/ja/how-to-build-a-digit-classifier-in-tensorflow-ja/
https://github.com/Embarcadero/TensorFlow-Lite-Delphi

AIの本番環境での構築はC++ベースにGPUで処理できるライブラリを使用するが最もいいのでしょうね。
(学習しやすいという意味ではないです)

なのであまり言語に関係なく、数学が得意な人がAI構築もプログラム製造も有利なのかもしれないです。
ただの趣味でDelphiでプログラムしている、40年前に数学を高校でならった程度のジジイの私にはつらいお話しです。

編集 削除
mam  URL  2023-05-23 13:31:09  No: 150957  IP: 192.*.*.*

MNIST用畳み込み層ニューラルネットワーク(Convolutional Neural Network)をDelphiソースコードのみで作成してみました。

「畳み込み層ニューラルネットワーク」のみで構成
https://mam-mam.net/delphi/cnn.html

「畳み込み層+全結合層ニューラルネットワーク」で構成
https://mam-mam.net/delphi/cnn_nn.html

畳み込み層をネットの情報で理解するのに5か月かかりましたが、とりあえず正常に動作するので多分正しいアルゴリズムのソースコードなのだろうと思っています。何等の工夫もしていないので、処理速度はかなり遅いです。ご参考まで。

編集 削除