FILEMAKER

FileMaker で機械学習やってみる (0)

Claris FileMaker Pro 19 から Apple の Core ML による機械学習が利用できるようになりました。本ブログ・シリーズでは、FileMaker ビギナーズ & ジュニアズのみなさんに、FileMaker での機械学習がどういうものか、何ができるのか、どうやって使うのかなどについてざっくりご紹介します。

ブログと一緒にあれこれ試してみるのも良し(*)、FileMaker で機械学習を使うってそういうことなんだとなんとなくわかったところでそっと引き出しに仕舞うのも良し。気軽に読んでみてくださいね。

(*) 「やってみた」は次回からです。

今回の旅路:

  • 機械学習とは
  • 機械学習でできること(できそうなこと)
  • Core ML とは
  • (もうちょっと詳しい)Core ML とは
  • Core ML モデルを用意する
  • FileMaker で機械学習を利用するための情報
  • FileMaker で機械学習を利用するステップ
  • それではやってみましょう!

なお、このブログ・シリーズでご紹介する機械学習機能は、FileMaker Pro 19 以降の macOS 版でご利用いただけます。19 よりも前のバージョンをお使いの方は、最新の無料評価版をダウンロードしてご利用ください。

機械学習とは

「AI 家電」とか「AI 搭載ロボット」とか「AI 搭載アプリ」とか、私たちの身の周りで「AI(Artificial Intelligence、 人工知能)」という言葉はもうすっかりおなじみになりました。かっこいいな、どういうものなんだろうな、と能書きをちょっと眺めていると、たまに「機械学習」という言葉が一緒に出てくることがありますよね。そう、本ブログ・シリーズは、その「機械学習」と我らが FileMaker の話です。

「機械学習(Machine Learning)」って、なに? と聞かれて、えー、「AI」のことをちょっとお堅く言っただけじゃないのー、要は、「機械(コンピュータ)」が「学習」してくれるのよね(たぶん)、と答えがちな皆さん、言葉通り、私もそう思ってました。

この答えでも 5 才の女の子に叱られるほどではない、と個人的に思ったりもするのですが、ちょっと安直すぎる気もするのでもうちょっと詳しく言うと、「機械学習」とは、「AI の一種で、既存のデータの中から法則を見つけ出して、新しいデータについて推論する技術」といったものです。ここでの「推論」とは、データを分類したり、値を予想したりすることです。

このあと使う用語についても触れておきます。
「機械学習」は、ざっくり

  • 「学習」(法則を見つけ出す)
  • 「推論」(新しいデータについて判断)

という、2 つのステップで実行されます。

「学習」には、機械学習で自分が解こうとする問題に応じた大量の「学習データ」を使います。「学習」した結果に出来上がる(おそらく超絶複雑な)計算式は、「(機械)学習モデル」、あるいは単に「モデル」と呼ばれます。

もっと詳しく正確に知りたい方は、ネットを検索してみてください。例えば、「AI 機械学習」と検索するだけで、たくさんの方々がいろいろと説明してくださっています。

機械学習でできること(できそうなこと)

機械学習でできることは、大きく分けて「識別(分類)」と「予測」です。画像、テキスト、数値、音(音声、音響)など、コンピュータで扱うことができるデータはすべて、機械学習の対象とすることができます。

機械学習には、例えば以下のような参考事例があります。

  • 識別(分類)
  • 予測

もちろん、上記例にとどまらず、昨今は機械学習の様々な応用事例が出てきていますので、気になる応用分野については、ニュースや技術記事などをウォッチしてみてください(それにしても、機械学習のことを大雑把に「AI」と書いている記事のなんと多いことよ…)。

Core ML とは

冒頭で述べたように、FileMaker Pro 19 では Apple の Core ML による機械学習モデル(Core ML モデル)を使って、その推論結果を利用できるようになりました。

ここで Core ML とは、機械学習モデルを iOS / watchOS / macOS などの OS 上で動くアプリに組み込んで利用する仕組み(フレームワーク)のことです。WWDC 2017 で発表されて以来、開発者は(比較的)簡単に機械学習モデルを作成し、アプリに組み込んで利用することができるようになっています。

(もうちょっと詳しい)Core ML とは

Apple の機械学習フレームワークは、アプリ開発者が信頼性の高い機械学習を簡単にデバイス上で実現できるように、以下の図のような階層構造になっています。

Core ML フレームワーク(出典: Apple Core ML ドキュメント)

階層構造の一番上は、開発者によるアプリです。その下には、画像認識(Vision)自然言語解析(Natural Language)、音声認識(Speech、 Sound Analysis)など、応用分野に特化したフレームワークが提供されています。これらのフレームワークを使うことによって、それぞれの分野特有のデータを前処理したり事前に分析したりして Core ML で利用しやすくすることができるので、その分野の専門家でなくても簡単に機械学習の信頼性を上げることができます。
応用分野ごとのフレームワークの下の層は、その名のとおり、コアとなる Core ML フレームワークです。Core ML フレームワークでは、ディープラーニングを含む機械学習のための様々な技法(アルゴリズム)をサポートしています。応用分野に依存せず、画像、テキスト、辞書、数値といったデータを入力とし、目的に応じた様々な機械学習モデルを構築することができます。
この Core ML フレームワークは、Apple のデバイス上で機械学習を高速かつ省電力で実行するための仕組み(AccelerateBNNSMetal Performance Shaders (MPS))の上に構築されています。このため、Core ML を使ったアプリは手元のデバイスだけで閉じて動作することができます。機械学習は大量のデータを、場合によっては何度も処理する必要があるため、CPU パワーと大容量ストレージをふんだんに使えるクラウドサービスとして提供されているものも多いですが、Core ML はデバイスに閉じて利用可能であることから、

  • データのプライバシーやセキュリティの問題
  • 応答時間(レイテンシ)
  • クラウド(サーバ)上にデータを保存するコストや通信コスト
  • サービス休止期間

などを気にせず安定して使える、という特長があります。つまり、FileMaker で Core ML モデルを利用する際も、これらを気にしなくても良い、ということですね。

Core ML モデルを用意する

「FileMaker で機械学習を使う」ということは、FileMaker カスタム App において Core ML モデルを使って「推論」結果を得る、ということです。FileMaker で Core ML モデルを作成すること、つまり「学習」してモデルを得ることはできません。したがって、カスタム App での用途に応じたモデルをあらかじめ用意しておく必要があります。

Core ML モデルを用意するには、次の 3 通りの方法が一般的です。

  1. 研究コミュニティから提供されている Core ML モデルを使うApple の Web サイトからダウンロード可)
  2. Apple から提供されている Create ML を使って Core ML モデルを作る
  3. Apple から提供されている Core ML コンバータを使って他ライブラリモデルを Core ML モデルに変換する

最初の方法は既に出来上がっているモデルを利用する方法、あとの 2 つはユーザ自身でモデルを作成する方法です。2 番目の Create ML を使う方法は、自分のカスタム App で利用する Core ML モデルをノーコードで作成することができます。

Core ML モデルを用意する方法

(*1) 機械学習モデルを作成するための手法(学習アルゴリズム)、機械学習用のフレームワークやライブラリの使い方、プログラミング言語などに関する知識

(*2) 学習アルゴリズムのパラメータの変更など、機械学習モデルの信頼度や振る舞いを変更するカスタマイズ

それぞれの方法については、本シリーズの次のブログからご紹介します。

FileMaker で機械学習を利用するための情報

FileMaker における機械学習利用方法については、バージョン 19 が発表された 2020 年 5 月からこれまでの間に、Claris パートナーのみなさんによってたいへんわかりやすい情報が公開されています。今まで機械学習にあまり馴染みがなくても、これらを見ていくだけでとても勉強になるのでお勧めです。
まずは、初心者向けの動画で、機械学習とは何か、FileMaker でどういうふうに機械学習を利用できるのかをチェックしてみてください。そして、機械学習をさらに高度に利用したい方は、中級・上級者向け動画やその他チュートリアル(英語)で研究してみてください。

(以下、敬称略)

初心者向け:

中級・上級者向け:

  • 使用モデル: Resnet50(画像分類), YOLOv3(画像分類), PoseNet(人体画像認識)
  • 使用モデル: YOLOv3(画像分類), BERT-SQuAD(質問応答)

その他チュートリアルなど(英語)

  • 使用モデル: MobileNet(画像識別)
  • 使用モデル: Resnet50(画像分類), カスタム画像分類(Create ML app)、カスタム感情分析(Create ML app)
  • 使用モデル: MobileNetV2(画像分類)、カスタム画像分類(Create ML app)、カスタム感情分析(Create ML app)

FileMaker で機械学習を利用するステップ

上でご紹介した動画でも詳しく説明されていますが、FileMaker Pro 19 で Core ML モデルをカスタム App に組み込んで利用する処理は、とても簡単にローコードで実現できます。必要なステップは、なんと次の 3 つだけです。

  1. Core ML モデルをロードする([機械学習モデルを構成] スクリプトステップ)
  2. ロードしたモデルを使って分類や予測をする( ComputeModel 関数)
  3. Core ML モデルをアンロードする([機械学習モデルを構成] スクリプトステップ)

つまり、用途に応じた Core ML モデルさえ用意できれば、あとは簡単にカスタム App で機械学習機能を利用できるようになります。

ただし、Core ML 自体はとても汎用性があって、様々なモデルを作成することができるのですが、残念ながらそのすべてを FileMaker で利用できるわけではありません。FileMaker で利用可能なモデルは、次の入出力仕様を満たす 2 種類です( 2021 年 3 月現在)。

  • 画像分類:入力が単一のイメージで、出力が分類(分類名と信頼度)の配列
  • 一般(画像以外):入力が 1 つ以上のスカラー(数値または文字列)で、出力がスカラー値あるいはその順序付きリスト

つまり、出力が画像であるものや、入力あるいは出力が多次元ベクトルのような複雑なタイプのものは、FileMaker 単体で利用することはできません。

なお、上でご紹介した動画の中には、プラグインを使用して、より複雑なモデルを利用する方法を紹介しているものがありますので(これこれ)、上記の仕様では物足りない方はご参照ください。

それではやってみましょう!

本ブログ・シリーズでは、次回から上記のスクリプトステップ・関数を使って実際にカスタム App を作っていきます。前述の動画を見る前にさっと読むのも良し、動画を見た後で復習としてさっと読むのも良し、ご都合に合わせてご利用ください。

なお、このブログ・シリーズでご紹介する機械学習機能は、FileMaker Pro 19 以降の macOS 版でご利用いただけます。19 よりも前のバージョンをお使いの方は、最新の無料評価版をダウンロードしてご利用ください。