Google CloudのProfessional Data Engineerの資格を取りました
統計学や機械学習だけでなく、分析基盤も勉強してみたいなと思い、最初の一歩として、Google CloudのProfessional Data Engieerの認定資格を取りました。
取得にあたって、勉強方法等をつらつら書いて行きます。
基本的な情報
資格そのものについては、Googleのドキュメントを見て頂ければいいと思いますが、料金は200ドル*1、試験はお近くのテストセンターで行います。4 or 5択の試験で、基本的にはユースケースに沿ったGCPのサービスを解答する問題がほとんどです。*2
試験結果は試験修了後すぐに出ます*3。
正式認定は試験終了後の2日後でした。Googleグッズのクーポンコードも送られてきます。
勉強方法
勉強自体は色々やったのですが、結果としてGCPのドキュメントを読めば、受かると思います。
Google Cloud Platform のドキュメント | ドキュメント | Google Cloud
資格を取ることだけを目的とするなら、カテゴリのストレージ、ビッグデータ、機械学習を読むだけで大丈夫だと思います。特に”概念”のセクションは最低でも抑えておいた方がいいです。
私の場合は、ドキュメントの熟読の他に、Courseraのコース
Data Engineering on Google Cloud Platform 日本語版 | Coursera
や、どんぴしゃな本を一通りやりました。*4
この本は英語になりますが、手を動かしながら楽しめるので、モチベーションの維持に繋がりました。内容もGCPサービスを組み合わせて一つのプロダクトを作っていくような構成で、試験のユースケースに対応しながら勉強できたのも良かったです。
試験後
試験に受かったら、ご褒美に自宅の機械学習用のサーバーとして、自作PC一式を買うつもりだったのですが、もうGCPで良くね?*5となってしまって*6、Boseのスマートスピーカーを買いました。*7
CourseraのDeep Learning Specializationを修了しました
ちょくちょく取り組んでいたAndrew Ng先生のDeep Learningの講座を全て修了しました。
(実際に修了したのは、2018年11月頃です…はよ記事にしよって感じですが…)
想像以上に有意義な講座だったため、ちょっとした感想を書こうかと思います。
まずは基本情報をば…
何はともあれ料金
まず料金ですが、この講座はSpecializationという括りで、月50ドルの月額制となります。
早く終われば、その分お金が浮くというシステムですね。動画自体は無料で見られますが、課題やディスカッション等へのアクセスはできないようです。
ちなみにですが、5コースすべてを修了すると、自動的に更新が止まるようです。
日本語対応?
ここで注意なのですが、説明文では日本語対応と書いてあるコースもありますが、そのコース内の講義すべてが日本語対応しているとは限りません。*1
数式とコードで何を言わんとしているかは、なんとくなく分かりますが、英語絶対ムリ!という方には厳しい箇所があるかも…
それでもAndrew先生は、ゆっくりで非常に聞き取りやすい英語で話してくれるので、英語のリスニングを兼ねていると思うと、儲けもんです。
もちろん、英語字幕はすべての講義で見られますので、Google翻訳を使えば、事足りるのではと思います。
数学は出てくる?
これに関してはしっかりと出てきます。主に出てくるのは線形代数と微分ですが、線形代数の内積もちゃんと説明してくれるため、正直前提知識がほとんどなくても、ついていけると思います。
講義の基本的なスタンスは、脱ブラックボックスなので、これは仕方ない所ですね。
特徴として、 は`np.sum`に置き換えられたりと、実際にコードを組むことを意識して展開されるので、エンジニアの方には頭に入りやすいんじゃないかなと思います。
講義形式
講義の基本形式は、こんな感じです。
- テーマに沿った講義動画
- 10-20問の選択式のテスト
- Jupiter notebookを使ったプログラミング課題
このセットを1週間で行います。課題の提出の期限が設けられているため、なんとなくやらなくなってしまうオンライン講座の良くないところもカバーしています。もちろん1週間以内で終えて、次週分の講義を開始しても全く問題ありません。
課題もなかなか面白いものが多いです。例えばですが、こんなものがあります。
課題はJupyter notebook形式で行いますが、穴埋め形式でコードを完成させるタイプのものです。
環境はすべてクラウド上で構築されているため、ブラウザ一つあれば取り組むことができます。
課題は決して簡単ではないのですが、各課題で用意されているディスカッション(掲示板)を活用することもできます。
他の受講者のハマり所や、メンターによる参考サイト等を見ることができるので、すべて自力で解答しなければいけない訳でもないです。
解答をそのままディスカッションに掲載するのは、Courseraの規約違反になるので、ヒントだけ見るイメージですね。*2
講義内容
全5コースですが、それぞれについてざっと書きます。
1. Neural Networks and Deep Learning
最初の講義では、まずDeep Learningとはなんぞや?からニューラルネットではない2値分類(Logistic Regression)を出発点とし、多層ニューラルネット、ベクトル化、forward/back propまで、基本的な内容を一気に学びます。このコースだけでニューラルネットが何たるかを学習することができます。
2. Improving Deep Neural Networks: Hyperparameter tuning Regularization and Optimization
このコースでは、コース1の発展として、汎化、バイアス/バリアンス分解、l1, l2, ドロップアウト等の正則化手法について学びます。パラメータの初期化方法や、最適化手法、パラメータチューニングの戦略等、実践的な内容になっています。特に、これらはTensor FlowやKerasでコードを組むときに必ず出てくるものなので、ニューラルネットの入門書を読んで、概念は理解できたけど、オプションの指定方法が分からないという方の強い味方になりそうです。*3
3. Structural Machine Learning Projects
このコースは他のコースとは毛色が違います。実際に機械学習のシステムを組むときに、どの指標を使うべきなのか、train/dev/testの割合はどうするべきか、ベースラインはどう考えるべきなのかといった、なかなかテキストでは学べないものとなっています。
特に間違ったラベルについてどう考察するかの講義は新鮮でした。どれだけの精度が出たかに注目されがちですが、間違ったものから何を得るか、どういった戦略をとるかは、なかなかテキストには書いてないので、大変勉強になりました。
(4, 5はまた時間ができたら書きます…)
結局受けてみてどうだった?
まずディープラーニングのテキストをしっかりと読めるようになったというのが大きいですね。簡単なものなら論文を読むこともできるようになりました。
理論と実践がそこそこの難易度で展開されるので、ディープラーニングをちゃんとやりたいと思う方の最初1歩としては、本当にお勧めできます。仮に 3ヶ月かけて15,000円払ったとしても十二分に回収できます。(私は仕事中も空いた時間でこなしてたというのもありますが、だいたい1ヶ月くらいかかりました)
あとは機械学習ライブラリで出たエラー内容を追いやすくなりました。
いままで次元数があってなくてエラーが出ていても、一生懸命ググってそれっぽい解決をしていましたが、”あっ、こことここのレイヤー合ってないやん”みたいに気づけるようになった気がします。
ただ一つ注意点なのですが、このコースを修了したからといってデータサイエンティストや機械学習エンジニアを名乗れるかと言われればそうではありません。
総コーディング量も決して多くありませんし、数ある機械学習手法の一つであるディープラーニングにフォーカスしたものなので…
それでも、入門レベルを超えたディープラーニングの知識を身につけられることは間違いないですし、高いセミナーや変なセミナーに参加するよりも、まずこれやっとけ!と声を大にして言いたいです。
RユーザのためのRStudio[実践]入門 を読みました
RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−
- 作者: 松村優哉,湯谷啓明,紀ノ定保礼,前田和寛
- 出版社/メーカー: 技術評論社
- 発売日: 2018/06/29
- メディア: 大型本
- この商品を含むブログ (1件) を見る
"宇宙本"と呼ばれる本ですね(^^)
200ページ程ですが、tidyverse
パッケージ周りが非常コンパクトかつ、よくまとめられており、最近のR事情を把握したい人にとってはとてもおすすめできる本です。
RStudioの設定から、tidyデータの概念、dplyr
をデータの前処理、gglot2
を用いたデータの可視化、Rmd
を用いたレポーティング等、自分で一通りデータ分析ができる知識が身につくと思います。
主に使うのはHadley神が開発しているパッケージ群tidyverse
ですね。
特にdplyr
を使ったデータの前処理や、ggplot2
のエステティックマッピングの機能の説明はかなり役に立ちました。
kaggleのkernelや、R関係の記事を読むと、tidyverse
パッケージ群が普通に使われていますし、必須の知識なようです。何より便利です。
私はR言語を1年くらい全く使っていない期間があり、dplyr
や%>%
(パイプ演算子)っておいしいの?状態で、最近のR界隈からは取り残されていたのですが、これでひとまずついて行けそうです。
一つ注意点としては、"入門"とタイトルにありますが、R言語を全く触ったことがない人がこの本から入ると難しく感じるかもしれません。 ただしR言語を勉強する上では避けて通れぬ道、入門書のお供、kaggleのkernelのお供に一冊あってもいいのではないかと…
正直なところ、もっと早くtidyverse
を知っておけばよかったと同時に、もうR言語以外使いたくないと思ったのはナイショです。