数学嫌いリーマンのAI雑記

AI、IT、資格とか。

【プログラミング】AIに興味があるならPythonかC++がオススメ

 
   AIを使ったモノを作ってみたいと考えている方、作るためのツールは決まっていますか?

本記事では、AIツールを自作する際にオススメなプログラミング言語についてまとめました!


プログラミングは必須?

 AIを使ったツールを自作したい場合は、プログラミングの知識はほぼ必須と言えます。

「自分のやりたいこと」を機械に指示する方法は、現在のところプログラミングしかないからです。

「プログラミングは難しそう...」というイメージを持っている方も多いかと思います。

しかし、1から10まで理解する必要はありません。

適切な手段を選択すれば、誰でもAIツールを自作することが可能です。

一番のオススメはPython

 AIツールを自作するにあたって、筆者が最もお勧めするのはPythonです。

Pythonには、以下のようなメリットがあります。

Pythonのメリット


1. コードがわかりやすい(人間目線で作られている)

2. AI関連のライブラリ(あらかじめ作られたパッケージ)が豊富

3. 人気があるので、先人たちのコードがネット上にゴロゴロ転がっている

それぞれについて解説していきます。

1. コードがわかりやすい(人間目線で作られている)

 Pythonはの大きな特徴の一つとして、「コードがわかりやすい」というものがあります。

これはPythonがプログラミングコードの読みやすさ、書きやすさを重視した言語だからです。

例えば、以下のプログラミングコードを見てください。

print("これがPythonのプログラミングコードです。")

これは、単純に

「これがPythonのプログラミングコードです。」

と表示させるだけのプログラミングコードです。

1行だけです。単純なものなので、「まあこんなもんか」と思う方が多いかと思います。

しかし、同じものを、代表的なプログラミング言語である「C言語」で書くと、以下のようになります。

#include <stdio.h>
int main(void) {
    printf("これがC言語ののプログラミングコードです。.\n");
}

Pythonとは違い、4行も必要となります。

この単純な例だけでも、Pythonが以下に読みやすく、書きやすいプログラミング言語であるかがわかると思います。

2. AI関連のライブラリ(あらかじめ作られたパッケージ)が豊富

 Pythonは、今や大人気のプログラミング言語です。そのため、やりたいと思ったことは大抵ライブラリ(あらかじめ作られたパッケージ)が存在しています。

自分で1からプログラミングコードを書く必要がないので、知識が少ない状態からでも気軽に始められるメリットがあります。

3. 人気があるので、先人たちのコードがネット上にゴロゴロ転がっている

 2. に類似していますが、ライブラリに限らず、Pythonにはネット上に心強い味方がたくさんいます。

特に、初心者の困りごとは、99%がググれば解決します。
調べ方も、

「〇〇 やり方」
とか、
「〇〇エラー なぜ」

といったような雑な感じでも十分なくらいです。

この安心感も、初心者には心強いですね。

Pythonのデメリット

 ここまで読むといいこと尽くしのようにも思えるPythonですが、デメリットも存在します。

Pythonのデメリットは
・処理速度が遅い
ということです。

これはなぜかというと、「人間目線」と「機械(コンピュータ)目線」はトレードオフだからです。

Pythonのメリットの一つとして「読みやすく、書きやすい」というものがありましたが、これは「人間目線」に特化した結果です。

上で示したプログラミングコードで、PythonよりもC言語の方がコードが長かったのは、
「機械(コンピュータ)にとって読みやすくするための情報を与えていた」
からです。

Pythonは、機械(コンピュータ)に対して与える情報を削っていたため、人間にとってはわかりやすくても、機械(コンピュータ)にとっては「足りない情報を推測する」 ことに時間を割く必要があり、結果的に処理が遅くなってしまうわけです。

よって、Pythonは「カメラを使ってリアルタイムで人物の検知をしたい」といったような、処理速度が求められるAIツールの作成には少々不向きであると言えます。

処理時間を重視するならC++

 リアルタイム性を求めるAIツールを作りたい場合は、「C++」というプログラミング言語をオススメします。

この言語は、名前の通り「C言語」を拡張したものです。大きな特徴として

・汎用性が非常に高い

・実用に特化しており、処理速度が非常に速い

が挙げられます。

特に、処理速度の速さは圧倒的で、一般的にはPython10倍以上とも言われています。圧倒的ですね。

筆者の会社でも、「開発段階はわかりやすく書きやすいPythonを使用し、実装段階では処理の速いC++」というように使い分けています。

趣味の範疇では処理速度が気になることは少ないかもしれませんが、ビジネスでの使用を考えているならC++を選択肢に入れてもいいかもしれません。

ただし、C++の大きな欠点として、

学習レベルがかなり高い

ことは頭に入れておいた方がいいと思います。いばらの道になる覚悟のある人は、ぜひC++の習得にチャレンジしてみてください。

まとめ


結論としては、AIを使ったツールを自作したい場合、勉強すべきプログラミング言語

処理速度とか気にしないので手軽に実装したい→Python

早さを追い求めたい、ビジネスにしたい→C++

となります。
本記事が参考になれば幸いです。