AIプログラミングを勉強しはじめたい、AIプログラミング入門します

AIプログラミング

数年前から、AIプログラミングの勉強をしようと、いろいろ本や動画を買っていたけれど、結局全部中途半端にやめちゃってた・・・

続けられないのは良くないよね、ちょっと勉強したこと僕に教えてよ

AIという言葉が入る商品が多くなってきて、とても便利な世の中になってきました。音楽制作では、マスタリングやミキシングもかなりお世話になります。投資では、ロボアドバイザーで手軽に投資ができるようになっています。Amazonやyoutubeには、的確なおすすめを提案されます。こんな分野にはおそらくふんだんにAIとかそういったものが使われていることでしょう(予想)

こんな人の役に立つかも

・最近はやりのAIや人工知能ってなに??

・AIプログラミングについてとっかかりを知りたい。

・ディープラーニングってよく聞くけど、どんなものなの?

スポンサーリンク

AI?人工知能?ってなんだろう

「人工知能」と「AI」は同じ意味です。英語の短縮で「AI」、日本語だと「人工知能」となります。

強いAIと弱いAIがある

人工知能、ときいたときどのようないめーじをするでしょうか??私がイメージするのは、映画「ターミネータ」のような、人と同じような知能があるものです。

もう、接していて、人と遜色がないような反応をしてくるものですね。

強いAIの例

「強いAI」は、人と遜色ない思考、コミュニケーションをしてくるようなAIです。汎用人工知能ともいわれるらしい・・・ちょっと恐ろしいイメージを抱いてしまうときもあります。

ターミネータや、スターウォーズにでてくるC3POなど、が強いAIといえます。

PS4の「デトロイト」というゲームはこの話題にあったゲームです。ストーリー展開も面白いです。

すべて物語の中のAIを例えるしかなく、現在この「強いAI」は世の中ないと思います。(隠れて存在しているかも・・・賢いから表に出てこないとかあるかもしれませんね^^;)

弱いAIの例

特定の目的のために開発されるAIです。主に次のような場面で見られます。

・人の顔を判定する

・画像の中からリンゴを見つけ出す

・音声を認識する

・株価を予測する

・画像の中からリンゴを見つけ出すための画像の特徴を見つけ出す

・チェス、将棋などのゲームに勝つ

などです。強いAIと違うところは、人間の目の機能だけであったり、耳の機能だけであったり、特定の考え方だけをプログラムで表現しているにとどまっているところです。

弱いAIは、「特定の目的が存在」している、ということができます。

人の機能の一つを実現

先ほど挙げた例で行くと、次のような特徴があります。

①ものごとを「識別」する
リンゴの画像を、リンゴと判定する。

②ものごとを「予測」する
過去の株価データから、今後の予測される株価を算出する。

③データから「特徴」を見つけだす
たくさんのリンゴ画像から、データの特徴を抽出します。

④決められたルールの中で目的を達成するため改善していく
チェスというルールの世界で勝つという目的を失敗を繰り返しながら勝率を高めていきます。

今よく見る弱いAIを作るには、機械学習という分野のプログラミングを勉強すると良いらしいんだ。

機械学習か、そのままのネーミングだね!機械が学習する。

AIプログラミングは、機械学習を勉強

機械学習を使うと今までと毛色が違うことができる

本来、コンピュータの特徴は、「決められた計算がすごく早くできること」や、「忘れない記憶」というものが売りでした。ですので、人の顔を見てこの人は誰であるとか、音声を聞いてこの単語は・・・みたいな認識は出来なかったのです。

このような人の認識や思考のように動作するプログラムを作るためには、どうやら機械学習という分野のプログラミングを勉強すればよいらしいです。

プログラミングに機械学習を使うと、どうやらコンピュータでちょうどいいあんばいの答えが得られるようになるとのことです。

今までは人がプログラミングをしてルールを決めていた

例えば、今までのシステムで、コンピュータにリンゴを認識させようとすると・・・

リンゴが正面から撮影されているときの特徴は、形が・・・色が・・・また、斜めからの時は・・・・などと、特徴の条件をプログラミングでひとつづつ洗い出して実現させようとしていました。でも、この方法での識別はいまいちうまくいきませんでした。

というのも、思いもかけない条件が出てきたり、ほぼ無限の条件に立ち向かうような感覚なので、実際にこのルールを決める方法でやる時は、背景を必ず白にしたり、撮影する画像をよりシンプルな条件で判定できるように追い込む必要もありました。

私は、OpenCVという画像処理をするプログラムライブラリを使い、製品検査プログラムを作っていたことがあります。カメラで製品を撮影して製品の欠陥を検査するようなシステムです。画像処理プログラミングという点もそうですが、外部の環境変化が現れるとすぐに認識しなくなってしまったりするので、この外部の環境変化ができるだけないようにしていくことが本当に難しかったです。例えば、光の加減が少しでも変化(朝と夜)すると撮影の色味なども変化してしまったりするので専用の暗室にライトを設置したりして環境を整えました^^;

人がプログラミングでルールを決めて識別させるということはかなり難しかったのです。

機械学習が盛んになった背景

機械学習と呼ばれるプログラミング分野は、たくさんのデータを使い、学習させるということで、とても多くの計算量が必要になっていました。

それが、パソコンがとても高性能になり、とても早くたくさんのデータを処理できるような仕組みが整ったという点が大きいです。CPUはマルチコアは当たり前、GPUと呼ばれる特定の計算をとても早く行う部分の発達等で日常的に機械学習が手軽に扱えるようになりました。

理論自体は昔からあったけど、最近やっと実用的に使えるレベルのコンピュータができたってことだね。

AIプログラミングはどの言語?機械学習の言語

確実にPythonではじめるのが良いです。

というのも、今まで購入した本1冊と動画5本はすべてPythonでしたので 笑

ですので、今後AIプログラミングの分野へ行きたい場合はPythonを勉強すると良いということになりますね。

AIプログラミングはかなり体系化されてきている

少し前までは、AIプログラミングというと、大学などの研究機関などで切り開かれていましたが、現在は、機械学習の様々な手法は、ライブラリと呼ばれるものを使うことで、ある程度の概念を理解すると利用できるような段階にあります。

「公式はすでにあるので、あとは使って」とPythonさんが言っているような感じですね。

AIプログラミングを教えてくれるスクールなどもあり、このようなサービスが近年AIを絡めたサービスの開発ハードルを下げてくれているのですね。

まとめ:今後どのように独学していこうか・・・

機械学習のプログラミングを勉強しよう、と意気込んでおりますが、どのように入ろうか模索しております。

今回は、機械学習の種類についてすごくぼやっとしてしまったので、まず機械学習にはどんな種類があるのか整理してみたいと考えています。次は、そのあたりを深堀していきたいです。

後日、機械学習の種類について記事にしました。

タイトルとURLをコピーしました