のぐそんブログ

暗いおじさんがシコシコ書くブログです。

機械学習は難しい①

 

世間ではバズワード的に「人工知能(AI)」という言葉が流行っています。

書店に行けば関連書だらけです。

 

しかし、己の知能が劣化が激しく、自分の知能のメンテナンスで忙しい私には関係のない話だと思っていましたが、社内で人工知能」のプロジェクトの話が出てきたため、必要に迫られる形で勉強しだすことにしました。

 

とは言え、JSの知識しかない私が、いきなり機械学習などができるわけもなく、

まずは、「そもそも人工知能って何よ」という概念的なところから調べることにしました。

 <!-- more -->

人工知能(AI)とは

人間の知能の一部をコンピューターで再現する技術。

人工知能の分類

人工知能といっても、用途や機能によって分類されます。

大きくは下記の4種類になるようです。

特化型と汎用型

AIの用途によって分けられます。

特化型人工知能

自動運転や、将棋対局、画像識別など特定の役割に特化した人工知能

世の中にあるほとんどのAIが特化型。

汎用人工知能

特定の役割に特化せず、人間と同じように自律的に行動する人工知能

 

強いAI、弱いAI

AIの持つ機能によって分けられます。

強いAI

映画やテレビ出てくるAI。

人間のように物事を考えて、判断できるAIのことを指します。

知能そのものを持つ機械です。

 

私の持っていた人工知能のイメージはこれです。

 

例)ドラえもん鉄腕アトム

 

弱いAI

人間が与えた知識で判断するAIのことを指します。

知能を使ってする処理を代わりにやってくれる機械です。

限定的な問題解決に使います。

 

例) 自動運転、将棋対局、画像識別

 

弱いAIの使いみち

今実用化されているほとんどのAIは弱いAIです。

◎画像認識、画像処理

顔認識、画像のフィルタリング

 

◎音声、会話認識

音声入力、会話エンジン

 

◎文章の認識、文章の作成

チャットボット、小説作成

 

◎機械の制御

自動運転、産業用ロポット

 

◎作曲、作画

自動作曲、絵の模倣

 

まとめ

まずは、人工知能基礎の基礎の基礎について調べてみました。

次回からは少しつづ機械学習について調べていこうと思います。 

 

あ〜〜辛い。

 

デザイナーがプログラムを学ぶ理由

この話は、私のような会社のお荷物化しているデザイナーに向けての記事になります。

デザイナーとしてバリバリやってる方にはまるで関係ない話です。

 <!-- more -->

私のメインの業務内容は、デザインとフロントエンド開発です。

ワイヤー書いて、デザインして、HTML書いて、JS書くまでが基本の業務です。

デザインにしても、プログラム(JSしか書けませんが・・・)にしても、

実力的には中の下、もしくは下の中くらいです。

若ければ未来がありますが、おじさんなのでいつ社会から抹殺されてもおかしくない実力です。

 

元々「デザイン」という言葉に憧れ、ファッションデザイナーも、グラフィックデザイナーも区別が付かない状態でこの業界に飛び込みました。

 

知ってるデザイナーを聞かれた場合は、MICHIKO LONDONや、岡本太郎と答えて失笑を買っていました。

 

そんな脳みそがつるつるの玉袋みたいな私ですが、今はデザインだけでなくプログラムも少し書いたりします。

 

デザインがあまり上手でない私は、デザインを任せてもらえずHTMLのコーディングばかりをやっていた流れでjavascriptを書くようになりました。

 

その結果気づいた、プログラムをやってよかったこと書きたいと思います。

 

1.デザイン上の演出を自分で調整できる

「ぐぁ〜と横から出したいんです」とメニュー表示の演出をお願いしても、

当然「ぐぁ〜と」の感じ方が人によって違うので正確に伝わりませんし、

「それ大変だから、他のにしてくれない」と言われてしまうかもしれません。

 

少しプログラムができれば、自分でいい感じのぐぁ〜と」を実装することができます。

途中でやっぱり「ビューンと」にしたいと思っても自分で実装していれば気兼ねなく直すこともできます。

 

当然、他の演出方法も実装できるようになりますので、イメージに近い表現が可能となります。

 

イデアのアウトプットを自分だけで完結できるのは素敵なことです。

 

2.次の工程を考慮できるようになる

デザインだけをやっていると、次工程で実装しずらいデザインにしてしまうことがあります。

もちろん、ユーザーにとってそれが有益なデザインであればがんばって実現すべきですが、チームで仕事をしている以上次工程のことは考慮すべきだと思います。

 

デザインは、全体の工程の中で実装フェーズより上流にある場合があります。

その為、デザインによって実装上の難易度は変わってきます。

デザイナーは、作ったデザインはどのように実装されるかをイメージできたほうがよいです。

 

3. エンジニアと共通言語で話ができる

基本的にエンジニアの言ってることは難しくてわかりません。

わかりやすく説明してくれる人もいますが、稀に専門用語を織り交ぜてわざとわかりづらく話してくる場合があります。

そんな時は、「◯◯さん、やっぱりすごいですね〜」と褒めて気持ちよくさせてからもう一度聞くようにしています。

 

少しプログラムができれば、なんとなく言っていることがわかるようになり、前戯しなくてすみます。

 

4.表現の幅が広がる

これが一番のメリットかもしれません。

映像や、3D、ゲームなど何をやるにしてもプログラムはついて回ります。

プログラムができることで、今までグラフィックデザインしかできなかった私が

WEBデザインをやることができました。

頑張ればアプリも作ることもできます。

 

もちろん、プログラムができなくてもWEBデザインも、3Dもゲームデザインもできます。

しかし、プログラムができることでインタラクティブな表現や、細かいエフェクト表現、アニメーションの制御など表現の幅を広げられるのではないかと思います。

 

まとめ

私自身はプログラムを書けるというレベルではありません。

しかもおじさんになってから始めた為、辛い思いをすることも多いです。

 

しかし、時代がおじさんの怠惰を許さなくなってきているので少しずつでもやっていくしかないと思っています。

 

あ〜辛い。