「AIプログラミングの基本が知りたい」 「AIプログラミングに適した言語とは?」 この記事では、AIプログラミングの概要を説明し、企業がAIプログラミングを行うメリットを解説。そしてAI開発における5種類の主要なプログラミング言語の比較・解説を行います。 その後AIプログラミング言語の選び方や、AI開発までの流れを説明します。 AI開発やプログラミング、データサイエンスなどの専門的な知識がない人にも分かりやすいよう、専門用語は極力使わずに説明。専門用語を使う場合は、必ず解説を加えます。

北海道大学理学部数学科確率論専攻。 地方都市に居住していて、プロジェクトのテックリードを努めたりする傍ら、中小企業のDX支援なども積極的に行う。 後進に知識を伝えるべくライティング業務をしている。
AIプログラミングとは?

AIとは
そもそもAIとは何なのでしょうか。 結論から言うと、AIには明確な定義が存在しません。「Artificial Intelligence」の略称であるAIは、直訳すると「人工知能」。人間に似た知能を作り出し、あたかも人間のような処理を行わせるための技術全般を指します。 近年AIが話題となっているのは、「機械学習」という分野の「ディープラーニング」と呼ばれる技術の発展によるものです。「ニューロンネットワーク」という人間の脳の細胞組織に似た機構を利用し、用意したデータを機械が学習する仕組みがディープラーニングなのですが、これによってAIが飛躍的に発達しました。 ChatGPTなどの生成AIや、画像や動画の自動生成、またプログラミングの自動化なども、飛躍的に発展したディープラーニング技術によるものです。プログラミングとは
プログラミングとは、コンピュータに思い通りの処理を実行させることことです。簡単な情報の追加・変更から、コンピュータにしか出来ない複雑な計算まで、あらゆる情報の処理を行わせることを指します。 今日では様々なプログラミング言語が登場し、その数は数百種類に及びます。ただしそれぞれ得意な処理が異なっており、全てのプログラミング言語でAI開発ができるわけではありません。 AI開発に適したプログラミング言語には、- AIプログラミングのための機能が実装されていたり、使用できる部品にAIプログラミングに特化した部品があったりする
- 膨大な量のデータを処理する能力に長けていて、複雑なデータ処理を簡単に記述できる
AIプログラミングは企業にとって必要か?

AI開発におすすめのプログラミング言語

習得難易度 | AI開発との相性 | データ解析能力 | 計算速度 | |
Python | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★☆☆ |
C++ | ★☆☆☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★★ |
Julia | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★★★☆ |
R言語 | ★★☆☆☆ | ★★★★☆ | ★★★★★ | ★★☆☆☆ |
JavaScript | ★★★☆☆ | ★★★☆☆ | ★☆☆☆☆ | ★★★☆☆ |
Python
近年のAI開発において、最も人気のプログラミング言語であるPython。 ソースコードがシンプルで可読性が高く、初めてプログラミング言語を学ぶ人にも取り組みやすい言語です。またAIプログラミングのための機能が豊富に提供されているため、AI開発に取り組みやすい言語でもあります。 AI開発の分野で広く使用される言語であるため、コミュニティでの情報が充実しているのもPythonを選ぶ大きなメリットです。C++
C言語から派生したプログラミング言語であるC++は、主にデスクトップアプリや基盤システムに利用されてきました。 処理速度は高速。ゲームの開発や、AI開発にも広く使われています。 ただしAI開発のための機能はほとんど実装されておらず、習得の難易度は高め。もともとのC++の学習難易度もかなり高くなっています。AIプログラミングとC++の扱いに慣れた人におすすめの言語となります。Julia
2012年に登場したJuliaは、他の言語の長所を合わせ持ったプログラミング言語として注目を集めています。 R言語の統計・データ解析能力と、Pythonに似たシンプルなコーディング。そしてC++に迫る処理速度を誇ります。AI開発との相性も良く、PythonやR言語の機能もJuliaから使えるなど、多くのメリットが存在します。 ただし、比較的歴史が浅い言語であるため、Juliaを用いたAI開発のコミュニティはまだまだ発展途上である点に注意が必要です。R言語
統計学・データサイエンスの分野で広く利用されているR言語。特にデータの解析能力に優れているため、AIを用いて高度なデータ解析を行いたい場合におすすめの言語です。 グラフィック処理も得意であり、データを視覚的に分かりやすく表現するための機能が備わっています。 習得難易度は高めで、使いこなすには統計学・データサイエンスに関する知識を必要とします。JavaScript
Webシステム開発を始めとする、広いジャンルで使用されるプログラミング言語のJavaScript。非常に汎用性が高く、近年ではAIプログラミングにもJavaScriptが利用され始めています。AIプログラミング言語を選ぶポイントは?

- 言語がAIプログラミングの分野でメジャーか、構文が分かりやすいか
- 学習に必要とするコスト(習得の難易度・教材の多さ)
- 言語が使いたいフレームワークに対応しているかどうか
- 言語の将来性
メジャーで分かりやすい構文の言語
AIプログラミング言語を選ぶ大切なポイントとして、普及率の高さが挙げられます。 目的が似たAIが数多く作成されている場合、AI作成のノウハウが固まり、コミュニティで共有されている場合が多いです。そのため、同じプログラミング言語であれば、そのノウハウを比較的容易に取り入れることができます。 既にロールモデルが存在していれば、新たにAI開発に取り組む場合でもリスクヘッジが可能。また分かりやすく、使用率の高い言語であれば、開発・メンテナンスに関わる人員を補充しやすいというメリットもあります。学習コストが低い言語
学習コストが低いかどうかも重要です。 プログラミング言語には、明らかに学習コストの差があります。分かりやすい構文以外にも、特有のデータ構造が簡易的か煩雑か、システム全体の作り方が簡易的にできるのか煩雑になるのかなどの差がとてもある分野です。 言語によっては、日本ではまだあまり普及していなくて、日本語の学習教材が少なく、日本語のWeb講座なども存在しない場合があります。 AIそのものの学習にもコストがかかるので、プログラミング言語に余計なコストをかけるのは避けたいところです。特にプログラミング初心者の場合、最初は学習コストが低い言語から選ぶことをおすすめします。使いたいフレームワークに対応したプログラミング言語
利用したい「フレームワーク」に対応しているかどうかも、プログラミング言語を選ぶ際の大切なポイントです。 フレームワークとは、特定の開発を行う際に必要な機能が、あらかじめ用意されている枠組みを指します。例えばAI開発を行う際に必要な機能が備わっていたり、あるいは開発の一部を省略できるなど、フレームワークの使用は大きなメリットをもたらします。 1つのフレームワークを複数の言語が使用できることは珍しくありません。AIプログラミングの分野でも、人気のフレームワークである「TensorFlow」に対して、PythonやR言語、JuliaやJavaScriptなど多くの言語が対応しています。 しかし開発に利用したいフレームワークに、少数の言語しか対応してない場合も存在します。そのため開発の目的が明確に決まっている場合は、必要なフレームワークを調査し、そのフレームワークに対応しているかどうかの確認も必要です。言語の将来性
最後のポイントは、言語の将来性です。 そのプログラミング言語が、AI開発で広く使用される可能性は高いか。特に自社業務と親和性が高い分野において、将来性はどうか。 そのため、現在のプログラミング言語の使用率だけでなく、将来性の高さも言語を選ぶ1つの基準となります。AIによるプログラミングでプログラマーの仕事はなくなる?

プログラマーにしかできない仕事
現状のAIは、「考える」ことができません。 「真似する」ことしかできません。 これはつまり、AIは、 「新しいものを創造できない」 ことを示しています。 またAIは、人間とリアルな会話はできません。- 新規プロダクトのプログラム構成の全体立案
- 顧客との調整による仕様的な判断が加味される部分のプログラミング
- まさにAIを進化させるなどの研究要素があるプログラミング
AIの活用に適した仕事
今は生成AIもあるので、プログラマーはAIを活用しています。 同じような部品を生成させること、スペルのチェック、細かな部分のケアレスミスのチェックなどにAIを活用しています。 AIは機械なので、そういった作業は人間より正確で、速いです。さらに疲れません。 ルーチンワークはAIを活用しているわけですね。 また、データ解析の補助にもAIを活用しています。 アンケートデータの下処理など、AIがやってくれるデータ解析の補助業務は無数にあります。 解析結果を吟味するのは人間の仕事ですが、下処理はすべてAIにおまかせするわけです。そもそもAIが開発された目的はそこにありますし。 このおかげで、人間は膨大なデータを活用することが可能になりました。 最近のAIは画像の変換、会議の議事録の文字起こしなどもできるので、下働きの仕事に人間の労力を割くことがだんだん少なくなっています。 そうやって下働きにAIを活用することで、より高度なタスクに人間は時間を割けるようになりました。AIプログラミングの開発手順

- AIの開発目的を明確に設定
- AI・プログラミング・数学など必要な知識の学習
- フレームワーク・ライブラリを調査・利用
- AIプログラミングの実行
AIの開発目的を明確にする
まず一番大切なことは、AIに何をして欲しいのか、開発目的をできるだけ具体的に設定することです。 AIにやらせることを具体的に設定することで、AIにどのような機能が必要なのか。そしてそのAI開発にはどのような知識とスキル、開発環境が必要なのか整理します。 目的が明確でないと、必要な知識やスキル、環境が正確に把握できません。以降のプロセスを効率的に進めるためにも、AIにやらせたいことは明確にしておきましょう。 その後、目的に対してどのプログラミング言語が適しているのか、調査・検討を行います。AI・プログラミング・数学などを学習する
作成するAIの目的を設定したら、必要な知識を学習するプロセスに移ります。 AI開発に関する知識や、使用するプログラミング言語の学習。さらに数学・統計学などの基礎的な知識を必要とする場合があります。必要に応じて学習していきましょう。 数学・統計学の学習は多少難易度が高めです。しかし、多くのAI開発において、数学・統計学などで必要とする知識は基礎的なものが多くなっています。AI開発の教材・講習などで合わせて学習できる機会も多いため、しっかりと学んでおくことをおすすめします。フレームワーク・ライブラリを活用する
AIプログラミングはもちろん、システム開発ではフレームワークと「ライブラリ」を最大限に活用することで、開発を効率よく進めることができます。 フレームワークを「必要な機能があらかじめ用意された枠組み」であると説明しましたが、ライブラリは開発を効率的に進める1つの機能のことを指します。フレームワークが開発の枠組みを組み立て、ライブラリはその枠組みの中で働く1つのパーツ、とイメージすると分かりやすいかもしれません。 AI開発に向けたフレームワークとライブラリを活用することで、少ないコスト・時間でAIの開発を行うことができます。 以下ではAIプログラミングにおいて代表的なフレームワークである「TensorFlow」と「PyTorch」。そして代表的なライブラリの「NumPy」と「pandas」について解説します。フレームワーク:TensorFlow・PyTorch
Googleが開発したオープンソースのフレームワークであるTensorFlow。高い汎用性と柔軟性を持ち合わせ、ビッグデータのような膨大なデータを扱うのも得意です。 また「TensorFlow 2」からは、Google社員が開発した「Keras」というフレームワークが搭載され、短いソースコードでもAI開発が行えるようになりました。 一方でPyTorchは、Facebookが提供するオープンソースのフレームワーク。大きな特徴として、構文がわかりやすく、ソースコードの可読性が高いことが挙げられます。可読性の高さは、開発時だけでなく、保守・運用の際にも重要です。 またPythonの拡張ライブラリでもあるNumPyと操作が似ていることから、Pythonユーザーにとっては習得のハードルが低いフレームワークであると言えます。ライブラリ:NumPy・pandas
NumPy・pandasとは、プログラミング言語・Pythonの拡張ライブラリです。 NumPyは数値計算を行う際に利用するライブラリで、多次元配列というデータ型に対する操作が柔軟。なおかつ計算は高速です。AI開発においては、数多くの数値を多次元的に計算しなくてはなりませんが、NumPyによって効率的に処理することができます。PythonがAI開発で人気の理由の1つは、AI開発に適したライブラリであるNumPyがあるからだと言われています。 pandasはデータ解析を容易にするライブラリです。従来なら手間がかかっていたデータ処理でも、簡易的な命令で処理することができます。大量のデータを処理する必要のあるAI開発において重要なツールです。AIプログラミングを行う
学習が完了したら、AI開発を開始します。 開発を始めた後に、多くの不明点・トラブルが生まれる場合があります。学習した内容を振り返っても解決法が分からない際は、AI開発のコミュニティに情報がないか、探してみてください。 またAIが完成した後も、AIシステムをしっかりと運用し、変化に対応させる等のメンテナンスや改善を続ける必要があります。AIプログラミングを簡単にするポイント

初心者向けのツールやフレームワークを活用
AIプログラミングは、大学生が講義の一環で行うほどです。 大学生は社会人経験もなく、プログラミング初心者がほとんどです。 AIプログラミングにも初心者向けのツールやフレームワークがあります。 それこそ大学生でもプログラムが組めるようなツールです。 本格的に取り組めば難易度の高い概念が様々出てくるAIプログラミングですが、初心者向けのツールも整備されているのです。 一例として、Pythonのライブラリの一つであるpycaretは、極めて平易にAIを作れるツールです。 難しいことを考えずとも、pycaretのデフォルト設定を使用すればなんとなくAIになってしまいます。 最初はこのようなツールから取り組むとよいでしょう。チュートリアルやサンプルコードを利用
Web上には多数のAIプログラミングのチュートリアルが公開されています。日本語のものだけでもかなりの数に上ります。 また、そういったチュートリアルや記事などには、サンプルコードが掲載されている場合がほとんどです。中にはパラメータの値を変えるだけで手元で動かせる精度の高いサンプルコードもあります。 初めはそのようなサンプルコードを改造するところから始めてみましょう。 プログラムの書き方も理解でき、習得コストも低いので、簡単にAIプログラミングが始められます。オンラインコミュニティに参加
「一人では挫けそうだな・・・」 そう思ったら、ネット上にあるAIプログラミングのオンラインコミュニティへの参加を検討しましょう。 エンジニアはたいてい初心者に親切なので(理由は分かりませんが、IT業界にいると、後輩から「先輩が親切なので働きやすい」という声はよく聞きます)、親切に教えてくれますよ。 費用もほとんどかからない場合が多くなっています。 何より、一緒に打ち込む仲間がいると、習得に張り合いが出ます。AIを使ったシステム開発を行う日本企業、Jiteraとは

まとめ:AIプログラミングは専門知識が必要
