GCP Machine Learning Engineer 知識チェック 100本ノック　問題編 Part1

### はじめに
GCP Machine Learning Engineer試験のための100本ノックを作成しました。

私自身は、GCPのAssociate Engineer、Cloud Architect、Data Engineerを取得しています。また、AI検定のG/E資格にも合格しています。これらの資格にはすべて一発合格しています。ですが、この資格には落ちました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360150/b9fa2077-7b0b-ebb2-279b-9cc1bb209782.png)

GCPの知識と機械学習の知識があるから、ノリで行けるだろ～と思って、受けてみたら落ちました。GCPの資格試験は受験後のなんとも言えない手ごたえのなさを感じつつも「Submit」ボタンを押していたのですが、なぜか「Pass」の表示が出てきてくれていたので、GCPの資格は簡単なんだという錯覚に陥ってしまっていました。（もちろん合格した資格には準備をしっかりして臨んでおりました。）
そして、いざ本番。いつも通り手ごたえもなく最後に「Submit」すると、「Fail」の文字が。このとき、やってしまったと自覚しました。受験料の$200は決して安くありません。またわざわざ会場まで足を運んだ時間等を無駄にしてしまったことを考えると痛い損失でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360150/afd8f20b-19d4-f234-0eab-02990fd74392.png)

この資格はGCPの資格の中でまだできて日が浅く、英語版しかない状態でした（現在もそうですが）。最近は、いろんな学習サービスで教材や模擬試験が手に入るようにはなりましたが、当時（といっても半年ほど前）はGoogle Cloudの模擬問題や海外の合格体験記くらいしか勉強のとっかかりがなく、どんな準備をしたらよいのか分からない状態でした。なので、勉強はしていましたが、落ちても仕方がないというような半端な気持ちで受けてしまったのも、反省点です。

試験後の解答解説が一切ないので、振り返りのしようがないのですが、自分なりに振り返ったところ、
- GCPの機械学習系のサービス、ユースケースについて理解していなかった
- GCPの推奨するベストプラクティスについて理解していなかった
ことが原因だと分析しました。

なので、そういった内容を盛り込んでいます。よく合格体験記で、GCPのドキュメントを読み込んだという話を聞くのですが、私にとってはドキュメントは退屈で面白くないものですし、分量も多くすべてを読み込むことはそもそも不可能です。しかもサービス内容の変更も頻度も多いです。ITの進歩に比べたら言葉の変化は遅いので、GCPのドキュメントを隅々まで読み込むのに比べたら、英単語の勉強に辞書を1ページずつ読み込むという勉強方法のほうがまだ効率的だと思います（私はやったことありませんし、やりたくもないですが、高校時代の英語の教師が自慢げにその勉強方法を話していたのを覚えています。覚えたら一枚一枚ちぎっていくんだそうです笑 受験勉強を控える生徒にするアドバイスではないですよね）。なので、資格の有効期限も2年となっているのだと思います。この100本ノックは、機械学習エンジニアなら最低限知っておくべき前提知識とGCPのドキュメントのエッセンスだけを抜き取って問いにしている（つもりです）。辞書があるのに巷に単語帳が溢れている理由も、機械学習やAIに関する論文やAPIのドキュメントが充実しているにも関わらず様々な100本ノックが存在している理由も同じだと思います。

余談が長くなりましたが、本100本ノック問題編には解答がありません。なので、ご自分で考えていただくのも結構ですし、今後アップされる解答をご確認いただくのでも問題ないかと思います。個人的には各自で考えられたほうが、知識の定着になるので、良いかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360150/7e6b5259-89fa-b8f1-4e8b-479587e7e52d.png)


またあらかじめ断っておくと、私はMachine Learning Engineerに一度落ちてから、再受験しておりません。この100本ノックは皆さまの勉強に役立つためというものでもありますが、あくまでも自分の勉強のために作成しています。皆さんと一緒に合格を目指して行けたら、嬉しいです。ちなみに内容は順不同です。
分量が多いので、Part1(30問)、Part2(30問)、Part3(40問)で分けて作成していきます。Part1で反響が無ければ、打ち切る予定です笑

解答編は今後作成して公開します。毎日一問ずつ公開していく予定です。
そもそものこの資格を取ることのメリットについてはここでは考えないでおくことにします笑

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360150/865178b5-d12a-c7e4-c3fe-04fc8ba00203.png)

### 問題

1. [x] tensorflowを用いて画像とラベルをセットにしたデータセットの作成ができる
「[cifar10データセットでcnnを使ってクラス分類してみた](https://qiita.com/qwerty1234/items/e74cf8b94271cf8b29be)」

2. [x] Federated Learningの内容、利用目的、ユースケースについて理解している**解答公開予定日2021/11/20**

3. [x] BigQueryへのqueryを投げて、ML pipelineにデータを流すベストプラクティスについて理解している**解答公開予定日2021/11/21**

4. [x] モデルの学習時、入力データがボトルネックの場合の改善方法のベストプラクティスについて理解している**解答公開予定日2021/11/22**

5. [x] 静止画像/動画に対して利用するGCPの各種APIとユースケースについて理解している**解答公開予定日2021/11/23**

6. [x] 強化学習が対象とする問題と代表的な手法について理解している**解答公開予定日2021/11/24**

7. [x] CNNの原理と適用可能な問題について理解している**解答公開予定日2021/11/25**

8. [x] CNNで行われる各種演算を理解している**解答公開予定日2021/11/26**

9. [x] Feature Crossのメリット・デメリットについて説明できる**解答公開予定日2021/11/27**

10. [x] BigQueryで利用可能なMLツールとユースケースについて理解している**解答公開予定日2021/11/28**

11. [x] DataflowのFlexテンプレートの内容、利用方法について理解している**解答公開予定日2021/11/29**

12. [x] 異常検知システムのアーキテクチャの概要をイメージでき、必要なGCPコンポーネントについて理解している**解答公開予定日2021/11/30**

13. [x] 教師なし学習のうち、クラス分類の代表的な手法とユースケースについて理解している**解答公開予定日2021/12/1**

14. [x] GCP上で機械学習のモデル管理する際に選択すべきコンポーネントと利用方法について理解している**解答公開予定日2021/12/2**

15. [x] 機械学習の継続的デリバリーを行う理由と実践方法について理解している**解答公開予定日2021/12/3**

16. [x] 個人情報等の機密情報を扱うGCPのマネージドサービスについて理解している**解答公開予定日2021/12/4**

17. [x] 機械学習のモデルの精度に関する種々の評価指標の定義と活用方法について理解している**解答公開予定日2021/12/5**

18. [x] Document AIの概要とユースケースについて理解している**解答公開予定日2021/12/6**

19. [x] Integrated Gradientsの概要とユースケースについて理解している**解答公開予定日2021/12/7**

20. [x] 機械学習のモデルの汎化性能の検証方法について理解している**解答公開予定日2021/12/8**

21. [x] tensorflowを用いたマルチGPUでの分散トレーニングを実施する方法について理解している**解答公開予定日2021/12/9**

22. [x] Kubeflowパイプライン上でのモデルのデプロイから本番環境への移行方法について理解している**解答公開予定日2021/12/10**

23. [x] 不均衡データを評価する方法とその際に利用する指標の定義・意味について理解している**解答公開予定日2021/12/11**

24. [x] Dataprep by Trifactaの提供する機能とユースケースについて理解している**解答公開予定日2021/12/12**

25. [x] 時系列分析に用いる統計/機械学習のモデルについて理解している。またそれらのうち、BigQuery MLで利用可能なモデルについて理解している**解答公開予定日2021/12/13**

26. [x] BigQueryへデータを取り込む各種方法と最適な方法を選択する指針について理解している**解答公開予定日2021/12/14**

27. [x] データをアノテーションするGCPのデータラベリングサービスについて知っている**解答公開予定日2021/12/15**

28. [x] Dialogflowの各種サービスと利用方法、ユースケースについて理解している**解答公開予定日2021/12/16**

29. [x] 機械学習の推論を高速化する方法を知っている**解答公開予定日2021/12/17**

30. [x] BigQueryでデータ分析する前に、データの形式に応じて適切な前処理を選択でき、かつその方法について理解している**解答公開予定日2021/12/18**