AI初心者のわたしが最初に学んだ本

これは EDOCODE Advent Calendar 2023年12月11日の記事です。
Advent Calendar 記事一覧は[こちら](https://adventar.org/calendars/8641 "こちら")

1つ前の記事は、Nakoさんの[ コーポレートサイトをAstro + Cloudflareに移行しました](https://qiita.com/nako_n/items/c0120b39551b398767e1)の話でした。
また、[グループ会社のAdvent Calendar](https://qiita.com/advent-calendar/2023/wano-group)もありますので、よろしければそちらもどうぞ！

# 自己紹介
プロダクトマネージャーの前原と申します。ポイントモールを運営しています。
EDOCODE設立前の親会社Wanoが運営していたときから担当しているため、担当歴は10年くらいになります。
詳しい自己紹介は[こちら](https://www.wantedly.com/companies/edocode/post_articles/377385 "こちら")にも書いていますので、よろしければご覧ください。

# 紹介の背景
第4次AIブームという言葉が出てきたり、会社から、積極的にChatGPTやGenerative AI、Notion AIなどを活用していきましょうと言われている中、「AIってなんだ？？？」状態の私が、まず何から学ぶか、手にした本があるのでそれを紹介したいと思います。


# 読んだ本
[AIのしくみと活用がこれ1冊でしっかりわかる教科書](https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B-AI%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%B4%BB%E7%94%A8%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8-%E9%AB%98%E6%A9%8B-%E6%B5%B7%E6%B8%A1/dp/4297132184)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/526f0add-5f03-5fc1-c6b6-11b88976bfd2.png)

# 期待する効果
- AIの種類を把握できる
- 自分たちのサービスに使える手法を知る
- エンジニアの作業イメージを持てる


# 学び
### AIの分類
ロボットがやるような汎用型AIと、囲碁AIのような特化型AIがあり、自分たちのサービスで応用するには特化型のAIが必要

### ディープラーニング
AI＞機械学習＞深層学習（ディープラーニング）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/fce799d8-e5e8-2772-c07a-d9dfb5df74e1.png)
機械学習の中の、さらに深い学習手法のこと


### 機械学習の種類
教師あり学習、教師なし学習、強化学習という3つがある

- 教師あり学習
画像に対し、これはサル、これはイヌなど正解を与えてから学習させる
　<br>
- 教師なし学習
正解を与えずデータから特徴を導いて学習させる
　<br>
 - 強化学習
よい行動に報酬を悪い行動に罰則を与え最適な行動を学習させる

### 機械学習のアルゴリズム
代表的なものが、事例やイラストを交えて具体的にイメージできるよう紹介されています

- k-means法
    - 概要
        - 似たデータをあつめて分類する手法
        - すべてのデータがいずれかのクラスタに分類される
        - クラスタの中心点から1番近いクラスタに分類される 
         イメージ図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/a7bd7c76-0686-4ca4-9967-e7eb9a059164.png)
    - 用途例
        - ニュースアプリ等、ユーザーをグループ分けした販促
        - 属性や時間帯、閲覧回数などで分類する

     <br>
- 階層的クラスタリング
    - 概要
        - k-means同様データ間の距離を測定してグループ分けする
        - k-meansとの違いはクラスタ数を事前に決めないこと
        - クラスタが少しずつ併合されて最後に1つのクラスタになる
        - 階層的に表現できるので、カットすることでクラスタ数を決められる
        イメージ図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/9a7e0bfa-34fd-6d5c-82f2-0623c54534f0.png)
　<br>
- 行列分解
    - 概要
        - データの要素を分解して次元削減を行うもの
        
            例えば、映画視聴サイトで未視聴の映画をユーザーにレコメンドする場合、
            ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/b4d70cd9-9e9e-9ae0-fa9f-94c190b6c68c.png)
            各映画の評価データを元に、

            ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/7113eb27-e837-ff8a-dd92-04d2e1dd6d23.png)
            ユーザーの趣向と映画のジャンルに分け、     
            
            ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986184/345efbee-9d25-3538-a9c2-63b785af12e3.png)
            
            掛け算をして評価行列の予測値を計算する



他にも、
- 線形回帰モデル
- 決定木
など、多数の手法がイラストを交えて掲載されています。


# おまけ
どういう用途でAIを使うかによってアルゴリズムを選定できるチートシートがあり、こういったものをベースに選定していくこともできるようです。
https://learn.microsoft.com/ja-jp/azure/machine-learning/algorithm-cheat-sheet?view=azureml-api-1
https://scikit-learn.org/stable/tutorial/machine_learning_map/

# まとめ
大きくAIといってもどういう種類があり、どんな学習手法があるのか。また、どういったケースで利用できるのか概要を知ることができてとても勉強になりました！



# 最後に
現在Wanoグループでは人材募集をしています。興味のある方は下記を参照してください。
[JOBS | Wano Group](https://group.wano.co.jp/jobs/)