機械学習の学習をする機会をいただきました🙏🙏🙏🙏🙏

https://qiita.com/official-events/5a0932fbeb1443ae1094

# はじめに
- この記事は、「[Azure AIを活用した機械学習に関する記事を投稿しよう！](https://qiita.com/official-events/5a0932fbeb1443ae1094)」というキャンペーンの参加記事です
    - [Azure AI](https://azure.microsoft.com/ja-jp/overview/ai-platform/)
- 私自身は「機械学習」という言葉を聞いたことはあるけれど、何のことやらさっぱりというのが現時点の正直なレベルです[^1]
    - AIとどう違うの？　というそんなレベルです
    - AIという言葉自体は、ドラクエ4ではじめてききました(ザラキのおもいで)
- そんな私ですがキャンペーンにて、**機械学習を学習する機会**をいただいたと勝手に考えましてやってみようとおもいます

[^1]: なにの自慢にもなりません。 "It is never too late – never too late to start over, never too late to be happy.　(Jane Fonda)"を胸に楽しんでいきたいとおもいます。


# What is AI, ML and DL?
- AI: Artificial intelligence
- ML: Machine learning(機械学習)
- DL: Deep learning
- [Getting started with Machine Learning using Python](https://myignite.microsoft.com/sessions/5d21f1ca-199e-401f-aa35-2e51efa518ff)という動画 :movie_camera: 
の1分36秒あたりをご参照ください
- AIという大きなくくりがあって、その中に機械学習、さらにそのなかにDeep learningが含まれるというイメージをつかみました
    - この図にあらわれていないすべてを包含するものが仏教の`空`だとおもいます

![ai-vs-machine-learning-vs-deep-learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/b2559b9b-2689-7657-9d69-9177324647ba.png)
(https://aka.ms/DLvML)

# 機械学習の学習方針
- `azure ai machine learning learn`というキーワードでBing[^2]ってみました
    - [MS Learn](https://docs.microsoft.com/ja-jp/learn/)は良記事です!
    - 検索キーワードに`learn`を入れているのがポイントです
- そうするとこんなページがみつかりました
- <font color="purple">$\huge{Azure　Machine　Learning}$</font>
- <font color="purple">$\huge{を使用して AI ソリューション}$</font>
- <font color="purple">$\huge{を構築する}$</font>
- https://docs.microsoft.com/ja-jp/learn/paths/build-ai-solutions-with-azure-ml-service/
- 学習するのにうってつけの教材がありました！

[^2]: https://www.bing.com/ にて検索をすることをさしています。

## 前提条件
- ただし以下の前提条件がありました
- 1. [Python の最初のステップ](https://docs.microsoft.com/ja-jp/learn/paths/python-first-steps/)
- 2. [機械学習モデルを作成する](https://docs.microsoft.com/ja-jp/learn/paths/create-machine-learn-models/)
    - これらを完了していることが前提条件となっていました
    - [Python](https://www.python.org/)はそんなに使ったことはありませんが、他のプログラミング言語にはいくつか経験があります[^3]し、時間も限られているので`1`はスキップします
- 結論から言うと、`2`を飛ばしていきなり「[Azure　Machine　Learning を使用して AI ソリューションを構築する](https://docs.microsoft.com/ja-jp/learn/paths/build-ai-solutions-with-azure-ml-service/)」へ進むとただ闇雲に▷(Run)ボタンをポチポチ押すだけになってしまうので`2`はじっくりやったほうがいいと私はおもいました

## [Python を使用してデータを探索して分析する](https://docs.microsoft.com/ja-jp/learn/modules/explore-analyze-data-with-python/)
- まずは、`2`の中の「[Python を使用してデータを探索して分析する](https://docs.microsoft.com/ja-jp/learn/modules/explore-analyze-data-with-python/)」というモジュールをやってみます
    - このモジュールの主人公は大学教授です
        - (取り掛かるときには自分もそのつもりになってみます)
        - (楽しむ心は大事です)
    - データ サイエンスを学生に教えています
    - 学生の学習習慣(出席日数、学習に費やした時間など)に基づいて成績を予測
    - といったことをやってみます
- あとはモジュールの説明通りやっていけばできます
    - 1. Azure Machine Learning ワークスペースの作成
    - 2. コンピューティング インスタンスを作成
    - 3. [ml-basics](https://github.com/microsoftdocs/ml-basics) リポジトリをGit clone
    - 4. Jupyter ノートブックでデータを探索する
        - 1〜3は準備
        - 4はじっくり英語を読んで取り組む感じです
- まずは環境構築やらなんやらで詰まってしまうとやる気を削がれてしまうので指示通り、**Azure Machine Learning ワークスペース**を作って進めることをオススメします
- この調子で他のモジュールも学習を進めていきたいとおもいます
    - (と決意表明をしたところでキャンペーンと関連の深い内容はだいたい以上となります)

[^3]: [Elixir](https://elixir-lang.org/)というプログラミング言語がありまして私は好きです。いつかコントリビュートしてみたいとおもっておりましたところ、単にドキュメントの修正だけではありますが、名乗るほどのものではない名前をついに刻むことができました。https://github.com/elixir-lang/elixir/pull/11039

# Wrapping up :lgtm::lgtm::lgtm::lgtm:
- 「機械学習」とはよく聞くけどまだ手が出せていない方は、Azure AIを活用して学習をはじめてみてはいかがでしょうか
    - 私自身がド素人のくせに何目線で言っているのかわかりませんが......

# 第二部
- ここからはキャンペーンとの関係は薄いです

# [ml-basics](https://github.com/microsoftdocs/ml-basics)はローカルマシンでも実行できるのではないか？
- **できます**
- リポジトリをみにいくと`.devcontainer`ディレクトリがあります
    - おー、これには思い出があります
- Docker + VS Code + [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)さえ用意すればお手軽に環境構築できます
    - 構築方法は、
    - @takasehideki先生の https://qiita.com/takasehideki/items/79d4ba3f95b1463105f8#tldr が詳しいです
        - [Elixir](https://elixir-lang.org/)にはですね、[**ナウでヤングでcoolな**](https://www.slideshare.net/takasehideki/elixiriotcoolnerves-236780506)[Nerves](https://www.nerves-project.org/)というIoTフレームワークがございまして、私自身は[Nerves](https://www.nerves-project.org/)の活動を通じて`.devcontainer`のことを知りました

```
$ git clone https://github.com/microsoftdocs/ml-basics
$ cd ml-basics
$ code .
```

- そうするとこんな感じで右下になにかでてくるので、迷わず`Open`的なものを押せばよいです


![スクリーンショット 2021-06-06 20.56.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/5a2ea155-9f05-17bc-455b-121c4016cf16.png)

- もしかしたら初回はちょっと文言が異なっていたかもしれませんが、右下にでてきたものを迷わず押しました
    - 以前はでていなかったとおもいます
    - もしでなかったら、左下の`><`から操作してください
        - https://qiita.com/takasehideki/items/79d4ba3f95b1463105f8#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E5%B1%95%E9%96%8B
        - この操作も@takasehideki先生の記事が参考になります
- 初回はimageのダウンロードやらなんやらで時間がかかります
- :coffee: でも飲んで待ちましょう
- あとは、`.ipynb`を開けば、**Azure Machine Learning ワークスペース > コンピュータ > Jupiter**とやったときと同じような感じの画面がでてきます
    - 初回は`Trust`するか的なことを訊かれたようにおもいます
    - これも迷わず`Trust`でよいでしょう
- 解説をよく読んで、考えながら、▷(Run)ボタンを押していくと機械学習を学習できるでしょう

![スクリーンショット 2021-06-06 21.02.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/9a95edc2-66ee-40be-c633-d6ddc8c1657c.png)

# [Elixir](https://elixir-lang.org/)
- `.devcontainer`をみて、[Nerves](https://www.nerves-project.org/) -> [Elixir](https://elixir-lang.org/)をおもいだしました
- そういえば、この記事のタイトルにある`AI`つながりでAIにくわしい[Elixir](https://elixir-lang.org/)使いの方々が[elixir-nx/nx](https://github.com/elixir-nx/nx)という絶賛開発中のライブラリの登場に興奮していたこともおもいだしました
- さらに、さきほどのような`.ipynb`を開いた画面はなんか最近みたなーとおもっていました
- そうです! [elixir-nx/livebook](https://github.com/elixir-nx/livebook)です
- もし体験してみたい方は以下の記事にデモを紹介しておりますのでどうぞご自由にさわってみてください！
    - [Graphing support via VegaLite has arrived to Livebook! をイゴかしてみる(Elixir)](https://qiita.com/torifukukaiou/items/d9813aad1d3f5790b9ae)

![スクリーンショット 2021-06-06 21.16.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/950d03be-22de-234b-1654-d7854375f649.png)




## Once more, Wrapping Up :lgtm::lgtm::lgtm::lgtm: 
- 最後はいつものように[Elixir](https://elixir-lang.org/)のことを書きました
- I use [Elixir](https://elixir-lang.org/)!
- I like it!
- Enjoy [Elixir](https://elixir-lang.org/) :bangbang::bangbang::bangbang: