タグ: ①機械学習

  • 人工知能を支える基礎技術

    学習すべき基礎技術を5つ順不同で並べる(まずは5つをピックアップ)

    1.機械学習(Machine Learning)

     コンピューターに大量のデータを読み込ませ、データ内に潜むパターンを学習させ
       未知のデータを判断するためのルールを獲得しデータ解析を行う技術

       コンピュータに試行錯誤を繰り返させ、アルゴリズムを自動で調整させ
         正しい結果が出せるように徐々に近づけていく
     
     3つの方式
       ・教師あり学習・・・問いに対する正解をあらかじめ用意して学習させる
       ・強化学習・・・・・問いに対する正解を返すのではなく
                   評価点を返すので試行錯誤し点数アップを図る
       ・教師なし学習・・・問いに対する正解も評価点も返さず
                   結果を判断し問いを分類する
                 似ているものを分類することで、どこに注目すれば
                  物事を識別できるかということを学習する

    2.ニューラルネットワーク(Neural Networks)

     脳の神経細胞の仕組みを数学的に表現する、機械学習の一種
       画像認識、音声認識、自然言語処理などの分野で使われる

     情報の伝わりやすさは神経細胞同士を結ぶ「伝達機構」の結合強度によって変化する
       結合強度を「重み」と表現し、入力されたデータに対して重みを最適化していく

     5つの種類
       ・ディープニューラルネットワーク(DNN:Deep Neural Network)
         ニューラルネットワークを多層化したモデル
           ディープラーニングに対応させて4層以上に層を深くしたもの
           通常3層までなので4層以上に多層化する

       ・畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)
         いくつかの個性的な層を持ち、主に画像認識に用いられる
           データを学習することで入力画像から特徴量を抽出しそれらを区別する
           「畳み込み層」や「プーリング層」と呼ばれる個性的な層を持つ
           
       ・再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)
         時系列データなどを扱うことができ、自然言語処理の分野で用いられる
           順番に意味を把握しながら、前の単語や文章との関係を考える

         中間層の演算結果を出力層に出力すると同時に、
         同じ演算結果をもう一度自分自身(中間層)に入力して再演算を行う
           中間層の演算結果をもう一度自分自身に代入することを繰り返す
           同じ中間層が複数回使われることになり、
           見かけ上、複数の中間層からなるニューラルネットワークに見える

       ・敵対的生成ネットワーク(GAN:Generative Adversarial Networks)
         生成モデルの一種
         データから特徴を学習することで、
           実在しないデータを生成したり、
           存在するデータの特徴に沿ってデータを変換する

           データの真贋を見抜く「Discriminator」と、
           データを生成する「Generator」によって構成され
           両者のいたちごっこの繰り返しにより、データを作成する

         自動着色アプリや画像を自動生成するAPIが公開されている
           顔の画像データから、実際には存在しない人物の画像を作成する

       ・オートエンコーダ(自己符号化器:autoencoder)
         生成モデルの一種
           異常検知システム、ノイズ除去などに用いられる
         入力層と出力層のデータが同じになるように処理が行われる
           オートエンコーダをいくつも重ね合わせた構造がディープラーニング

         入力したデータの次元数をいったん下げ、再び戻して出力する
           入出力が一致するように各エッジの重みを調整していく
           この学習を通して、
           データの中から復元のために必要となる重要な情報だけを抽出する
           それらから効率的に元のデータを生成するネットワークを形成する

         前半部分(エンコーダ)は次元削減、特徴抽出の機能を有し
         後半部分(デコーダ)は低次元の情報をソースとするデータ生成機能を有す

         4つの種類
           ・積層オートエンコーダ(Stacked Autoencoder)
             シンプルなオートエンコーダを多層化した構造
               入力データはエンコーダにおいて段階的に次元を減らし、
               デコーダで復元される

             ニューラルネットの各層における学習を一層ずつ行って、
             最後にすべて積み重ねる、という手順で構築する
               積層オートエンコーダを事前学習に用いることはほぼ無い

           ・畳み込みオートエンコーダ(Convolutional Autoencoder)
             エンコーダ、デコーダ部分に全結合層ではなく畳み込み層を使う
               畳み込み層により空間的に意味のある特徴を抽出する
               画像に対して用いられる

           ・変分オートエンコーダ(Variational Autoencoder)
             生成モデル
             N次元の潜在変数が、N次元正規分布に従うように学習する
               正規分布という制約を設けることで
               データの潜在空間上での分布に連続性が生じ、
               似た潜在変数からは似たデータが生成される

           ・条件付き変分オートエンコーダ(Conditional Variational Autoencoder)
             変分オートエンコーダを拡張したもの
               指定したクラスのデータを生成できるようになっている

             変分オートエンコーダでは
               デコーダによるデータ生成の際、
               潜在変数を指定することはできますが、
               出力データのクラスを直接指定できない
             条件付き変分オートエンコーダは
               出力クラスを指定したうえで、
               潜在変数も自由にコントロールすることができる

    3.言語処理 (Natural Language Processing)

     人間が使う自然コンピュータ言語を自然で処理するための技術
       テキストの解析、機械翻訳、文書要約、質問応答などに利用される

     4つの仕組み
       ・形態素解析
         文章を「形態素」という単位ごとに分割し、
         それぞれの形態素を品詞などの各種情報に振り分ける
           ※形態素・・・何らかの意味をもつ最小限の文字の集まりのこと
         文章の中にある形態素の意味をデータとして抽出することができる
           最小単位になった単語を、辞書などの情報と照らし合わせ、
           それらの単語の品詞の種類、活用形の種類などを割り出す

       ・構文解析
         単語同士の関係性から文の構造をいくつか推測する
           文章の中で単語や字句で構成される文を、
           文法にしたがって解釈していき、文の構造を確認した上で意味を調べる

       ・意味解析
         推測された構文のうち正しい構文を1つに絞る
           統計的な方法などを用いて単語同士の結びつきを見出したりして、
           意味付けを行う

       ・文脈解析
         複数の文について形態素解析と意味解析を実施し文同士の関係性を解析する
           正しく解析するには、さまざまな領域の知識の学習が必要

    4.コンピュータビジョン (Computer Vision)

     デジタル画像を解析するための技術
       画像認識、物体検出、セマンティックセグメンテーション、深層学習を組合せる
         自動運転、監視カメラ、医療画像解析等の分野で利用されている

     4つの領域
       ・画像セグメンテーション
         画像をいくつかのオブジェクトに分割する
           画像を「人」や「車」に分割する
         自動車の自動運転で対象物との距離が認識される

       ・物体検出
         画像内の特定の物体を識別する
           製造業の不良品を見分ける外観検査
           医療での画像の物体検知

       ・パターン検出
         画像内に繰り返し現れる形状や色を認識する
           産業用ロボットをラインの部品まで誘導する位置決め

       ・顔認識
         人の顔を検出するだけでなく個人も特定できる
           顔認証は目や鼻、口などの特徴点の位置を元に個人の照合を行う
             顔認識技術は顔画像の加工や属性分析
             顔認証技術は出退勤システム

    5.ロボティクス (Robotics)

     機械やロボットを制御するための技術
       人工知能、センサー技術、モーター技術などを組み合わせて使用​​される
         自律移動ロボット、産業用ロボット、介護ロボットなど

     5つの技術
       ・制御理論
          ロボットの動作を安定的かつ正確に制御する数学的な理論を開発する

       ・センサー技術
         ロボットに搭載されるセンサーからの情報を解釈する技術
           距離センサーやカメラ、LIDARなどのセンサー

       ・モーションプランニング
         ロボットの動作を制御する技術
           目的地までの最適な移動経路や、物体の掴み方や動き方などを計画する

       ・人工知能
         ロボットの学習や意思決定能力を高めるために、
           機械学習やニューラルネットワーク、深層学習が使用される

       ・メカトロニクス
         機械工学、電気・電子工学、科学コンピュータなどの複合領域
           ロボットの制御システムを設計・開発する

  • memeplexの誕生

     9月12日記述の作者(Shimizu氏)による誕生秘話より抜粋

    1.Stable Diffusionの登場

     無料の作画AIモデル「Stable Diffusion」が全世界に公開される
       1枚あたりの作画時間はわずか数秒、
       生成された絵の再構成もできる等の
       非常に自由度が高くかなり具体的な絵が描けるモノであった

     たまたま夜中に目が覚めてしまい
       「Stable Diffusion」がどれほどの実力なのか確かめてやろうと、
       試しにPythonのコンソールを起動する

     2時間後、朝日が昇る頃には、
       「日本語で入力すると、英語に翻訳してStable Diffusionに投入する」
       無名のWebサービスを立ち上げる

     「絵を描きたい」という欲求はかなり限定的であり、
       万人が使いたがるサイトになるとは考えていなかった


     ログイン画面

      指示画面

    2.サービス開始

     サービス開始の翌日、グーグルからの請求書を見て驚く
       1日の利用料金が1万円を突破していた

       Stable Diffusionを使う前は、数百円~数千円が請求されるサイトが
         初日で1万円を超えるというのは尋常じゃない、と分かる

       2時間のやっつけで作ったサービスだったため設計がまずかった
         結果、大量のアクセスをお金で捌く、みたいな構造になっていた


         請求金額

    3.緊急対応 Memeplex.appの誕生

     緊急開発でまずサイトを無料会員制に移行し
       名称を「Memeplex.app(ミームプレックス)」とする
         Googleアカウントだけで誰でもサインオンでき
         文化的遺伝子であるミーム(meme)によって構成(plex)される
           ※ミームとはインターネット上で流行るネタ

     作画リクエストのキュー(作画の処理待ち)を一人一人が個別に持つようにし
       数日かけてサーバー負荷を減らす仕組みにする

    4.コスト問題

     作画を担当する高性能なGPU(Graphics Processing Unit)マシンが不足する
       当初は開発用のGPUマシン数台でMemeplexの作画をやりくりする
       ユーザーが増えてくると殺到するリクエストをさばききれなくなる

       追加購入することにして見積もってみると1台35万円になる
         AIでの作画には高性能なパソコンでが必要

     膨大な電気代が心配になる
       24時間、空調で冷やし続ける必要があることを考えると、
       電気代が月に十万円を突破しそうなことは想像できる

     正直、途方に暮れる

    5.救いの神

     助け舟をだしてくれたのが、さくらインターネットの田中社長
       「お困りでしょう、すぐにGPUサーバーを用意します」
       石狩のデータセンターにあるGPUサーバーを9台を、
       無償で貸していただける

       一度に申し込める限界の9台を申し込む

     さくらの高火力サーバーを使うと数秒で1枚の作画を完了できる
       並列処理で9つの画像を同時に作図している

  • 機械学習の主な用途

    1.クラスタリング(clustering)

     データ間の類似度にもとづいて、データをグループ分けする
       教師なしの学習で行う、データの特徴を学習した上でグループ分けをする
       ユーザの嗜好をグループ化する場合に使用する

    2.クラス分類classification

     事前にクラスが割り当てられたサンプルをクラスごとに分類する
       教師あり学習で行う、先にクラスに関する情報が必要となる
       迷惑メールの分類や画像の識別に使用する

    3.レコメンデーション(recommendation)

     ユーザの過去の購入履歴や閲覧履歴からおすすめの商品やコンテンツを表示する
       ECサイトの「おすすめ」に使用されている
       情報サイトや動画配信サービスなどで活用されている

    4.回帰(regression)

     過去の連続する値から次の値を予測する
       宣伝広告費と来店者数の関係を分析する際に使用する
       売上高や株価、機器の需要予測に使用する

    5.情報圧縮(information compression)

     データの特徴を維持しながらデータ量を減らす
       データをぎゅっと小さくする
       相関関係がある場合に片方のデータだけ残す際に使用する