日本ディープラーニング協会 G検定(ジェネラリスト検定)に合格した!

世の中、AIエンジニアが不足していると言われていますが、「じゃあ、AIエンジニアになったら年収あがるのか!?」「何ができればAIエンジニアなの?」と思う今日このごろ。

とりあえず、AIの資格を持っていればいいかもと思い、資格を調べてみると日本ディープラーニング協会が主催する資格があった。
https://www.jdla.org/business/certificate/?id=certificate_No01

【試験概要】

 【シラバス】

AI全般の知識を問うジェネラリスト試験の他にAIそのものを実装するエンジニア試験もあるが、これは少しハードルが高いので、まずはジェネラリストの資格取得を目指しました!

●勉強方法

まだ2回目の開催なので、勉強法もなかなか紹介されておらず、いろいろ模索して以下の勉強を進めました!

〇書籍で勉強

人工知能は人間を超えるか ディープラーニングの先にあるもの

日本ディープラーニングの理事長の東大の松尾教授の書籍。人工知能、特にディープラーニングについて、わかりやすく書かれていました。私は、人工知能関連の知識は皆無だったので、この本に最初に出会ったのが良かったです。

AI白書

こちらは、人工知能の現状について網羅的に書かれた分厚い本です。正直、難しいところは何回読んでも理解できませんでした。。。

 深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト

学習を開始して、上述の2冊を読み終えたころ、公式テキストが出ました!正直もっと早くでてほしかったけど。

〇WEB動画

AidemyというAI関連のWEB学習を提供しているサイトがある。無料の範囲でも、人工知能、機械学習の基本的なことはよく理解できました!
https://aidemy.net/

〇その他

他に、特に効果的だったのは、

  • シラバスに載っているキーワードを自分で調べてみる
  • シラバスに乗ってる例題を解いてみる

●結果は・・・

見事合格!

こんな合格証書がきました!

正直、全然手ごたえなかったんだけど、合格点は好評されておらず、合格率も50%を超えているので、もしかしたら合格点が低いのかも!!??


【要注意】JavaのFileクラスでrenameToメソッドによるファイル移動

Javaでファイル操作をするときの一番基本的なクラスであるFileクラスには、File操作のためのメソッドが数多く用意されています。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html

その中に、renameToというファイル移動(パスの変更)を行うためのメソッドがあります。

しかし、このrenameToというメソッドを使うには注意が必要です。APIリファレンスはこのように書かれています。

「ファイルシステム間で移動できないことがある」とさらっと書いてありますが、私はこれを見落としており、renameToの戻り値がfalseになってしまいました。Linuxでいうところのパーティションをまたがっていたり、AIXのファイルシステムをまたぐ場合のファイル移動はこのメソッドを使うことはできません。

同じく、APIリファレンスに書いてありますが、Filesクラスにはプラットフォームに依存しないmoveメソッドがあります。が、これはJava 7以降のことなので、Java 6はこんな感じでファイルをコピーして、削除する処理を自作しないといけないです。

今の現場が未だにJava 6を使っており、こんなものまで自分で実装しなくてはならないとは、、、早くバージョンアップしないだろうか。。。


Pythonにおける数字や文字列の論理演算

Pythonエンジニア認定基礎検定の勉強で、ネットで無料で受けられる模擬試験を受けた。
https://diver.diveintocode.jp/exam

その中でこんな問題↓があり、少し理解に苦しんだ。

orの論理演算の結果がなんで「suzuki」なんだろう・・・といろいろ調査したところ、

  • Pythonでは、数値や文字列の論理演算結果は、TrueやFalseが返されるのではなく、数値や文字列が返される
  • Pythonの論理演算では、必ずしも論理演算部分の最後まで検討されるのではなく、答えが確定すると残りの計算はせず、判断の決め手となった値を返す
  • 数値は0がFalse、0以外はTrueです。一方、文字列は空文字列(からもじれつ)はFalse、空文字列以外はTrueです

つまり、上記例題の場合、最初の”name1 or name2″の時点で、name2は空文字ではないので、Trueとが確定するので、name2のsuzukiが返されるということでした。

素人の私にとっては、使いどころがよくわからん言語仕様ですが、試験にでるので勉強がてら記事にしてみました!