tag:crieit.net,2005:https://crieit.net/tags/%E3%83%87%E3%83%BC%E3%82%BF/feed 「データ」の記事 - Crieit Crieitでタグ「データ」に投稿された最近の記事 2021-03-24T17:11:42+09:00 https://crieit.net/tags/%E3%83%87%E3%83%BC%E3%82%BF/feed tag:crieit.net,2005:PublicArticle/16766 2021-03-24T17:10:08+09:00 2021-03-24T17:11:42+09:00 https://crieit.net/posts/Excel-VBA-Web 【初心者向け】ExcelとVBAでWebスクレイピング実戦! <p><a href="https://crieit.now.sh/upload_images/e3cadfdba4688563a1e8d30580eacf54605af1c329c00.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e3cadfdba4688563a1e8d30580eacf54605af1c329c00.png?mw=700" alt="image" /></a><br /> 元記事:<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/intro-to-web-scraping-with-excel-vba/">https://www.octoparse.jp/blog/intro-to-web-scraping-with-excel-vba/</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/web-scraping/">スクレイピング</a>とは、WebページのHTMLコードから、<strong>必要な情報やデータを抽出する</strong>ことです。言い換えれば、自動的にWebページ上のデータを収集する技術です。</p> <p>現在、<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/web-scraping/">スクレイピング</a>の一般的なプログラミング言語は、<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/web-scraping-using-python/">Python</a>、Ruby、JAVA、<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/creating-a-simple-web-crawler-in-php/">PHP</a>などができますが、開発環境構築と環境設定は<strong>初心者に対しては非常に難しい</strong>です。</p> <p>したがって、この記事で紹介するVBAは以下のメリットがあります。</p> <p>・開発環境構築<strong>不要</strong><br /> ・取得したデータをExcelシートに<strong>直接保存</strong>できる<br /> ・直接にExcelシートで<strong>セルを設定</strong>できる</p> <p>それでは、ExcelとVBAを使って、Webサイトから情報やデータをExcelシートに取り込むというExcelマクロを実際に作成してみましょう。</p> <h1 id="一、Excelでスクレイピングライブラリを導入"><a href="#%E4%B8%80%E3%80%81Excel%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E5%B0%8E%E5%85%A5">一、Excelでスクレイピングライブラリを導入</a></h1> <p>ExcelでのWebスクレイピングを配置する前に、Excelのマクロに対してライブラリを導入しなければなりません。<br /> 手順は以下になります。</p> <p><strong>1.Excelを開いて、「空白のブック」を選択します。</strong><br /> <a href="https://crieit.now.sh/upload_images/74e597f5e3bc77b406df2d44e78c276b605af1ced7012.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/74e597f5e3bc77b406df2d44e78c276b605af1ced7012.png?mw=700" alt="image" /></a></p> <p><strong>2.リボン欄の「開発」をクリックします。</strong><br /> <a href="https://crieit.now.sh/upload_images/d7c1103e553fa8b1942527526ffa7e17605af1e04d38d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d7c1103e553fa8b1942527526ffa7e17605af1e04d38d.png?mw=700" alt="image" /></a></p> <p><strong>3.左側の「Visual Basic」ボタンを選択します。</strong><br /> <a href="https://crieit.now.sh/upload_images/bae9fc57cb3d8cda2cf3f6aae73e0db5605af1e61a751.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/bae9fc57cb3d8cda2cf3f6aae73e0db5605af1e61a751.png?mw=700" alt="image" /></a></p> <p><strong>4.「挿入」をクリックして、「標準モジュール」を選択します。</strong><br /> <a href="https://crieit.now.sh/upload_images/f7f85b99e6fe69d14c12397937b33bc2605af1ec5fcfa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f7f85b99e6fe69d14c12397937b33bc2605af1ec5fcfa.png?mw=700" alt="image" /></a></p> <p><strong>5.下記のコードを入力してください。</strong></p> <pre><code>Sub test() End sub </code></pre> <p>結果は以下になっております。<br /> <a href="https://crieit.now.sh/upload_images/c8526129fbc5d4df81a7eb091002c7da605af1f41ca76.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c8526129fbc5d4df81a7eb091002c7da605af1f41ca76.png?mw=700" alt="image" /></a></p> <p><strong>6.「ツール」をクリックして、「参照設定」をクリックします。</strong><br /> 「Microsoft HTML Object Library」と「Microsoft Internet Controls」のチェックを入れます。<br /> <a href="https://crieit.now.sh/upload_images/01529df864d0e6cc0221da3a6a050d9e605af1fadafd9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01529df864d0e6cc0221da3a6a050d9e605af1fadafd9.png?mw=700" alt="image" /></a><br /> <a href="https://crieit.now.sh/upload_images/be51a8b37f9cf5499b975479ba5937f0605af201c8f9e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/be51a8b37f9cf5499b975479ba5937f0605af201c8f9e.png?mw=700" alt="image" /></a></p> <p>モジュールとは、プログラムにおいて特定の機能を持ったひとまとまりの構成要素です。選択されたのモジュールは、ブラウザ連動とHTMLコードを読み込むという機能が持っています。</p> <p>それで、Webクローラーの開発が必要なものは設定完了です。</p> <h1 id="二、Webサイトにアクセスする"><a href="#%E4%BA%8C%E3%80%81Web%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B">二、Webサイトにアクセスする</a></h1> <p>早速ですが、ExcelのVBAを使って、IEブラウザ経由でWebサイトにアクセスします。<br /> これには、ナビゲート属性を使用します。この属性では、URLを二重引用符で囲んで渡す必要があります。詳しくは下記のコードに参照してください。</p> <pre><code>Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate"http://test-sites.octoparse.com/?page_id=192" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE End sub </code></pre> <p>F5を押して、マクロを実行します。そこで次のようなWebページが表示されます。<br /> <a href="https://crieit.now.sh/upload_images/8f4f8d449ff9d8e3f22749894a1191f2605af20b31d7a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8f4f8d449ff9d8e3f22749894a1191f2605af20b31d7a.png?mw=700" alt="image" /></a></p> <h2 id="三、VBAでスクレイピングしましょう"><a href="#%E4%B8%89%E3%80%81VBA%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86">三、VBAでスクレイピングしましょう</a></h2> <p>今回はボタンを押すたびに、Webサイト上データが自動的にエクセルに取り込まれるように開発しましょう。<br /> まず、Webサイトから、要素(HTMLドキュメント)を検証し、データがどのように構成されているかを分析する必要があります。HTML基礎知識は<a target="_blank" rel="nofollow noopener" href="https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/HTML_basics">こちらのリンク</a>で参照ください。今回はテーブルのデータを抽出するように試してみましょう。</p> <p><strong>1. Ctrl + Shift + I を押して、テーブルの要素を指定すると、HTMLのソースコードに表示されます。</strong><br /> したがって、テーブルの要素は「table」と分かっています。<br /> <a href="https://crieit.now.sh/upload_images/9eccd5f099411315c84c1898bcba8622605af215e3247.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9eccd5f099411315c84c1898bcba8622605af215e3247.png?mw=700" alt="image" /></a></p> <p><strong>2. VBAで要素「table」を抽出します。ソースコードでは以下のようになります。</strong></p> <pre><code>Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://test-sites.octoparse.com/?page_id=192" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table") End Sub </code></pre> <p>Excelは、Excelシートの範囲属性を使って、またはExcelシートのセル属性を使って初期化することができます。VBAスクリプトの複雑さを軽減するために、収集データはワークブックに存在するシート1のExcelセル属性に初期化される。</p> <p><strong>3.実行ボタンを指定します。</strong><br /> マクロスクリプトの準備ができたら、サブルーチンをExcelボタンに渡して割り当て、VBAのモジュールを終了する。ボタンに適当な名前をつけておきます。この例では、ボタンは「データ抽出」として初期化されます。</p> <p>手順は以下になります。<br /> <a href="https://crieit.now.sh/upload_images/1f619d8c8e01785042d52fb1d7557b23605af393b1f16.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1f619d8c8e01785042d52fb1d7557b23605af393b1f16.png?mw=700" alt="image" /></a><br /> <a href="https://crieit.now.sh/upload_images/b235535133d28cbc2d82958eaef19f9d605af39a3abc3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b235535133d28cbc2d82958eaef19f9d605af39a3abc3.png?mw=700" alt="image" /></a></p> <p><strong>4.ボタンを押して、以下のような情報が出力します。</strong><br /> <a href="https://crieit.now.sh/upload_images/d1e123dd88e8d9267e07485e99c00a0f605af3a3b008b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d1e123dd88e8d9267e07485e99c00a0f605af3a3b008b.png?mw=700" alt="image" /></a></p> <h1 id="四、Octoparseでスクレイピングする方法"><a href="#%E5%9B%9B%E3%80%81Octoparse%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95">四、Octoparseでスクレイピングする方法</a></h1> <p>プログラミングが苦手、或いは英語のコードばかりなので苦手意識を持っている方は、スクレイピングツールの<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/">Octoparse</a>はおすすめします。</p> <p>Octoparseは「<a target="_blank" rel="nofollow noopener" href="https://helpcenter.octoparse.jp/hc/ja/articles/360013561999-Octoparse%E3%82%92%E3%82%82%E3%81%A3%E3%81%A8%E7%9F%A5%E3%82%8B-">自動識別</a>」機能があるので、ページのURLを入力するだけで、Webページ上各項目のデータ(テキストとリンクを含む)、「次のページ」ボタン、「もっと見る」ボタン、およびページのスクロールダウンを自動的に検出し、タスク(Webクローラー)を自動的に生成することができます。</p> <p>早速ですが、Octoparseで自動化の魅力を体験してみましょう。</p> <p><strong>1.Octoparseを起動して、スクレイピングしたいWebページのURLを入力します。</strong><br /> 「抽出開始」 ボタンをクリックして進みます。<br /> <a href="https://crieit.now.sh/upload_images/761e0a72882545802c97a7319feeeef1605af3ac39190.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/761e0a72882545802c97a7319feeeef1605af3ac39190.png?mw=700" alt="image" /></a></p> <p><strong>2.Octoparseでページが読み込みされたら、自動的にページ上の内容を識別します。</strong><br /> 自動識別とは、自動的にページ上の必要なデータを検出して識別するという役立つ機能です。ポイント&クリックをする必要はなく、Octoparseは自動的に処理します。<br /> <a href="https://crieit.now.sh/upload_images/2359f12975aa9a679363209c1c928c6b605af3b32ce77.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2359f12975aa9a679363209c1c928c6b605af3b32ce77.png?mw=700" alt="image" /></a></p> <p><strong>3.識別が完了すると、データプレビューで識別したデータを表示され、確認してから「ワークフローの生成」ボタンを押します。</strong><br /> <a href="https://crieit.now.sh/upload_images/95661bba8fe25a46fc835456536461a8605af3bb20a09.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/95661bba8fe25a46fc835456536461a8605af3bb20a09.png?mw=700" alt="image" /></a></p> <p><strong>4.これで簡単にWebクローラーが作成しました!</strong><br /> 上の「実行」ボタンをクリックして、すぐデータを抽出できます。簡単ではないでしょうか。<br /> <a href="https://crieit.now.sh/upload_images/b0b0d3e60908ec44ecfc6aa732366d03605af3c190b44.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b0b0d3e60908ec44ecfc6aa732366d03605af3c190b44.png?mw=700" alt="image" /></a></p> <h1 id="五、まとめ"><a href="#%E4%BA%94%E3%80%81%E3%81%BE%E3%81%A8%E3%82%81">五、まとめ</a></h1> <p>VBAでスクレイピングは簡単にはできますが、<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/5-anti-scraping-techniques-you-may-encounter/">複雑な構造</a>を持つWebサイト(JavaScript、AJAX技術を使っている動的サイトなど)では、VBAの機能はちょっと足りないかもしれません。<br /> それだけでなく、スクレイピングしようと思ったら、プログラミング言語とIT知識を勉強する必要があります。完璧に学ぶ時間がなく、効率的にスクレイピングがしたい、プログラミングが苦手、或いは英語のコードばかりなので苦手意識を持っている方は<a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/the-10-best-web-scraping-tools/">スクレイピングツール</a>はおすすめです。</p> <p><a href="https://crieit.now.sh/upload_images/9211be13dbf84c6b98b0da0ecbffb784605af3d24b4f0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9211be13dbf84c6b98b0da0ecbffb784605af3d24b4f0.png?mw=700" alt="image" /></a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/subscribe/trial?plan=std&utm_source=crieit&utm_medium=pic&utm_campaign=8872">今から無料トライアル!</a></p> <h2 id="関連記事"><a href="#%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">関連記事</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/creating-a-simple-web-crawler-in-php/">PHPで簡単なWebクローラーを作ってみた</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/web-scraping-using-python/">PythonによるWebスクレイピングを解説</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/web-scraping-using-python-vs-web-scraping-tool/">Python vs Octoparse!初心者向きのスクレイピング方法はどっち?</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.octoparse.jp/blog/a-complete-guide-to-web-scraping-job-postings/">【完全初心者向け】求人情報を一括で自動的に取得する方法公開!</a></p> Octoparse Japan tag:crieit.net,2005:PublicArticle/15595 2019-12-10T22:37:42+09:00 2019-12-10T22:42:27+09:00 https://crieit.net/posts/AI-5def9fa6b3a97 AI時代はアナログ人材を不要にするか問題 <h1 id="はじめに AIの未来とアナログ人材"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB%E3%80%80AI%E3%81%AE%E6%9C%AA%E6%9D%A5%E3%81%A8%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E4%BA%BA%E6%9D%90">はじめに AIの未来とアナログ人材</a></h1> <p>普段、平日はRを使いごりごりと。最近、Pythonも勉強し始めました。(遅)</p> <p>東大の松尾教授の研究室で公開されている<a target="_blank" rel="nofollow noopener" href="https://weblab.t.u-tokyo.ac.jp/%E6%BC%94%E7%BF%92%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E5%85%AC%E9%96%8B%E3%83%9A%E3%83%BC%E3%82%B8/">演習コンテンツページ</a>とか見ると、ありがたいなぁと思いつつ…これを10代、20代前半でガシガシやってのける東大生ってやっぱすごいわと思うこの頃です。社会人でも応募できるDL4USとかも魅力的。</p> <p>学生のときは文系の研究室にいて組織論研究に身をささげてきたこともあって、<br /> データ分析を生業にしながら、「AIが人の仕事を奪う」とか「AI時代の人材教育」なんて聞くと色々考えてしまいます。</p> <p>かつて日本が製造業のものづくりで、トップにたっていたのは1980年代くらいまででしょうか。<br /> いまや海外から見た日本と言えば、テクノロジー分野の後発が多く、魅力的なイノベーションを生む土壌が弱いような。</p> <p>アナログのものづくりできらりと光ってた国内人材スピリットはどこへやら…<br /> デジタル、デジタルって言われて久しいけど、結局アナログ人材は要らんのか。</p> <p>そんなことないよなぁと思いつつ、徒然にAI時代の人材活用論について備忘録を残したいと思います。</p> <p><strong><a target="_blank" rel="nofollow noopener" href="https://ledge.ai/dl4us/">(引用:松尾研監修のディープラーニング無償講座(下図))</a></strong><br /> <a href="https://crieit.now.sh/upload_images/4d207ae728fddecac37bd59b5e3b37255def97ccd2ea1.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4d207ae728fddecac37bd59b5e3b37255def97ccd2ea1.JPG?mw=700" alt="Deeplearning.JPG" /></a></p> <h1 id="日本のAI実践活用 世界での立ち位置は"><a href="#%E6%97%A5%E6%9C%AC%E3%81%AEAI%E5%AE%9F%E8%B7%B5%E6%B4%BB%E7%94%A8%E3%80%80%E4%B8%96%E7%95%8C%E3%81%A7%E3%81%AE%E7%AB%8B%E3%81%A1%E4%BD%8D%E7%BD%AE%E3%81%AF">日本のAI実践活用 世界での立ち位置は</a></h1> <p>東京大学大学院教授兼<a target="_blank" rel="nofollow noopener" href="https://www.jdla.org/">日本ディープラーニング協会</a>理事長の松尾豊氏は今や日本でAi投資、ビジネスを企てるソフトバンクグループ取締役でもあります。</p> <p>近年、人工知能(AI)やディープラーニングのビジネス活用については聞かない日はないほどですが、企業における実践的な活用という点では日本は米国、中国と比較して大きく遅れをとっています。</p> <p>そんななかで積極的なディープラーニング(深層学習)のビジネス活用を推進するソフトバンクグループに学術的権威の松尾氏が加わるというニュースは、いよいよ日本におけるディープラーニング活用が本気になってきたという希望を感じずにはいられません。</p> <p>少し前になりますが2019年6月8日に開催された、Microsoft・Preferred Networks協同運営のディープラーニングコミュニティイベント「DEEP LEARNING LAB(DLLAB)」内での松尾氏の基調講演でも<strong>日本国内のAI導入 / ディープラーニング活用は世界的に見ても遅れをとっている</strong>ことが強調されました。</p> <p>その背景と今後の改善点として挙げられていた<strong>5つの観点</strong>は</p> <ol> <li>小さな成功体験をすること</li> <li>AIチーム編成の重要性</li> <li>AIトレーニングの必要性</li> <li>明確なAI戦略</li> <li>内部・外部のコミュニケーション(IR / GR[Government Relations] / 顧客育成 / 人材獲得 / 社内コミュニケーション)の重要性</li> </ol> <p>と明確に述べられており、まさしくと感じる観点ばかりです。</p> <h1 id="日本企業のディープラーニング活用 苦戦の背景は"><a href="#%E6%97%A5%E6%9C%AC%E4%BC%81%E6%A5%AD%E3%81%AE%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E6%B4%BB%E7%94%A8%E3%80%80%E8%8B%A6%E6%88%A6%E3%81%AE%E8%83%8C%E6%99%AF%E3%81%AF">日本企業のディープラーニング活用 苦戦の背景は</a></h1> <p>上記の5つの課題点に加えて、外資系IT勤務時代にから聞いたリアルな声を総合してみると日本企業の実態は以下のようなのではないかと思います。</p> <blockquote> <p>AIの導入効果を立証できない(小さな成功体験の不足)→投資を引き出せない・社内理解がない(内部コミュニケーション不足)→AIチーム編成/トレーニングは二の次 →目的設定のないまま「何か」からはじめようとする(AI戦略・外部コミュニケーション不足)→安価なトライアルから始める→検証段階で頓挫→AIの導入効果を立証できない…</p> </blockquote> <p>この無限ループから抜けたもの勝ちでビジネスが成功していくように思います。これを眺めていると、戦略的AI / ディープラーニング活用のために最初に打つべき手としては<br /> • 投資の確保と適切な投入<br /> • 実践経験豊富なAI人材の獲得</p> <p>がキーになりそうです。</p> <p>一点目は、各企業の経営層の手腕だったり、まさしくソフトバンク社「ソフトバンク・ビジョン・ファンド」のようなファンド事業会社の取り組みだったりが問われるところです。</p> <p>二点目のAI人材の獲得ですが、ここが国内企業の一番の課題と言えそうです。なぜなら優秀な人材獲得のためには、パフォーマンスを発揮するための環境、社内業務側との連携体制、顧客育成のためのブランディングなど戦略的かつ組織的な見直しを伴うためです。</p> <p>近年増えているAI人材に「日本企業」を選んでもらうためには多くの課題が残っています。国内の優秀な人材からすると活躍の場は米国、中国、欧州といったテクノロジー先進国にも広がっているためです。海外ではAI人材獲得の前に「育成」という観点からすでに企業各社の戦略が光っています。</p> <p>ここのところ特に、海外ではiSchoolが人気を集めていたり、「STEM教育」という言葉が注目されたりしているように、多くの学問でテクノロジー思考やデータ活用による論理的アプローチが重要視されており、AI時代に有用な人材を育てる気風があります。</p> <p><strong>対して、2020年からやっと小学校でプログラミング教育が始まる日本。</strong></p> <p>「AI=プログラミング」という短絡さもさることながら、数歩先を行く欧米、アジア諸国からAI時代の人材育成の根本を学ぶ必要さえ感じます。</p> <h1 id="「IoT / モジュール化」の時代に光るアナログ人材"><a href="#%E3%80%8CIoT+%2F+%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%8C%96%E3%80%8D%E3%81%AE%E6%99%82%E4%BB%A3%E3%81%AB%E5%85%89%E3%82%8B%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E4%BA%BA%E6%9D%90">「IoT / モジュール化」の時代に光るアナログ人材</a></h1> <p>STEM教育が注目される中で「アナログ人材」**もここへきてスポットライトを当てられるべき存在ではないかと思うのです。</p> <p>ここでいうアナログ人材とはものづくりをハード面でかなえるスペシャリティのこと。<br /> コーダーだってデータサイエンティストだってものづくりしてますから!!</p> <p>クラウド化が進んで市場は圧倒的にソフト面に偏るように見えても、IoT、ウェアラブル端末によるデータ取得が増える今後、どれだけ小型なハードウェアを作れるかというのは腕の見せ所です。</p> <p>しかし、近年のデジタル(ソフト)人材の需要の高まりによって<strong>市場では圧倒的にアナログ人材が不足している</strong>とか。</p> <p>結果、電子部品のハードウェア開発のトレンドも複数の機能をひとつにまとめる<strong>「モジュール化」</strong>が流行っています。</p> <p>例えば、データや通信機器、産業機器、医療機器などの中核としていわば「脳ミソ」の役割をするプロセッサー。<br /> これに電力供給をする<a target="_blank" rel="nofollow noopener" href="https://jp.rs-online.com/web/c/semiconductors/power-management-ics/buck-converters/">降圧コンバータ</a>であるDC-DCコンバーターの例をとってみると、アナログ人材の不足が背景で、DCDCコンバータ回路を構成する抵抗器・コンデンサーなどをまるっとひとつにして時短で実装できるというかたちが流行っているといいます。</p> <p>人材不足を受けて、より効率化の方向にものづくりのやり方自体がなびいてしまっているようにも思います。</p> <p>かつて日本の製造業、ものづくりを支えた職人はもっと強いこだわりを見せていたのではないかと考えを巡らせてしまいます。</p> <p><strong>作りたいもの、が第一にあり、それを叶えるための組織と戦略がついてくる。</strong></p> <p>これからのAI時代における日本の返り咲きは「プログラミングがあーだ、こーだ」言う前にこんなこだわりの見直しが必要なのかもしれないですね。</p> <p>まさにこれからが日本国内でのAI・ディープラーニングビジネスの正念場。<br /> 各社の投資、人材教育に向けた取り組みには、引き続き注目していきたいものです。</p> <p>参考: AI活用成功のための「打ち手」を探る</p> tech-teku tag:crieit.net,2005:PublicArticle/15188 2019-07-02T13:00:13+09:00 2019-07-03T11:45:10+09:00 https://crieit.net/posts/c81cf757cf261b0453084bb2451b8a6f ビジネスデータ分析を支える技術 <p>ビジネスデータ分析を支える技術について簡単に解説したいと思います。データ分析は割と広い世界になっていて、使われる技術は色々とあります。まず下記の図を見てください。</p> <p><a href="https://crieit.now.sh/upload_images/d49c72d087511c590d1aeeccc7f5c4895d1acdf9f3a6b.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d49c72d087511c590d1aeeccc7f5c4895d1acdf9f3a6b.jpg?mw=700" alt="Data Analysis Process.jpg" /></a></p> <p>データ分析システムをフルに作ろうとすると、だいたいこの図のようなフローになると思います。左から右へ流れて行きます。まず、一番左のグループです。データが生成される場所ですね。<br /> データは形式により大きく3つに分かれます。</p> <pre><code> 構造化データ 非構造化データ 半構造化データ </code></pre> <p>ここで必要な技術は何でしょう? データ理解です。これが実は案外難しい。習うより慣れろではないですが、経験がものを言うエリアです。分析をするプロセスに持ち込むデータの量、形式、質などを期待されるアウトプットを考えて、整理し、必要なら加工していかなけばならないのですね。欠損が無いか、もしあればどう補うのか。センサーデータなどのの場合は、採用するかどうかの基準値を決めなければなりません。非構造化データの場合も、どのデータを使うのかの基準値が必要になります。分析に使用するアルゴリズムによっては、必要とするデータ量が決まっているものもあります。後工程のことを考えつつ、データを理解し、必要なアクションを取って行くスキルが求められます。ここを安易に通過すると、期待する分析結果が得られないリスクがあります。</p> <p>次に、データをためるDWH(データウエアハウス)とData Lake(データレイク)。構造化データ(典型的な構造化データは、RDBMS)はDWHにため込むことになります。ほとんどがCloud DWHになります。半構造化データと非構造化データは、Data Lakeに保存しておきます。従って、DWHとData Lakeの技術スキルが必要とされます。</p> <p>次が、分析プロセス。データが保存されているDWHやData Lakeから分析に必要なデータを抽出して持っていく必要があるわけです。Data Martを作る場合もあります。レガシーシステムですとETLの知識が必要でしたがCloudでは、もう少し簡単になっています。DWHから分析に必要なデータを抽出する為には、SQLがわかっていなければなりません。Cloud Data Lakeの場合は、データカタログという機能が用意されており、抽出が容易になっています。</p> <p>分析プロセスについては、下図を見て下さい。</p> <p><a href="https://crieit.now.sh/upload_images/6b64021e020be575d571e445986395495d1ad53473b69.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6b64021e020be575d571e445986395495d1ad53473b69.jpg?mw=700" alt="datanalysisprocessfigure.jpg" /></a></p> <p>分析プロセスで必要なスキルは、どのようなものでしょうか?<br /> ここでは、データは使える状態になっているので、分析に使うアルゴリズムを決めます。データと期待されているアウトプットを考えて、アルゴリズムを決めるスキルが必要です。</p> <p>処理プロセスとしては最後になる、データビジュアライゼーションです。具体的には、Microsoft Power BIやTableauといったセルフサービスBIのスキルですね。最近は、第二世代も出てきていますので、この分野の知識とスキルも大切です。</p> <p>ビジュアライゼーションされた分析結果を読み取り、意思決定を支援できる知見を得ることがビジネスデータ分析の目的です。この知見発見というのが、ビジネスデータ分析の最大の難所です。ドメイン知識も必要ですし、おのれの知識や経験を総動員して考えなければなりません。クライアントやビジネスパートナーと知見発見ミーティングを持つ必要もありますが、それでもたたき台はコンサルタントが作成する必要があります。頑張りどころですし、ここで評価も決まってきます。</p> Masao Kato tag:crieit.net,2005:PublicArticle/15183 2019-07-01T14:27:44+09:00 2019-07-01T14:32:38+09:00 https://crieit.net/posts/AI-5d1999d003804 AI 人工知能とはどんな奴なのか? <p>AIが仕事を奪う。AIが人間を超える。数年前から言われています。でも安心して下さい。もう既に超えられてしまった分野もありますから、って古いギャグか。<br /> AIは、Artificial Intelligenceの略で、人工知能の意味です。対するは、私たち人間になります。ある先生は、NI Natural Intelligence と言っています。日本語だと自然知能になるのかな。</p> <pre><code> AI 人工知能 vs NI 自然知能 </code></pre> <p>の構図になるんでしょうか。僕は、そうはならないと思うし、そうなって欲しくないですね。ただ、多くの仕事はかのビルゲイツも言っているように、「創造性のない仕事は全てテクノロジーに代行される」てしまう運命なのでしょう。</p> <p>AIとは、どんな奴なのか、一度顔ぐらい見ておくのも良いでしょう。ところが、AIという奴は存在しないんですよ、いるのは、AIを構成する輩。後で説明しますが、データだとかアルゴリズムだとか機械学習なんかなんですね。これがたいていの場合、コンピュータで動いているわけです。AIというのは様々な技術の総称で、そのものズバリの技術があるわけではありません。誤解を恐れずに言えば、人間に代わって何かを行うため、データとそれを処理するアルゴリズムを含んだプログラムにより何らかをアウトプットする仕組みがAI。この何かとか何らかは、人間に代わってやらせる仕事によって変わってきます。</p> <p>それでは、AIを構成する輩に順番に会って行きましょう。今回は、データと学習。ここでは便宜的に、コンピュータ上で作った人間に代わって何かをする仕組みをAIと呼んでおきます。</p> <p>1.データと学習<br /> 人間は、オギャアと生まれてから様々なことを学習していきます。学校の勉強、暗記、スポーツなど何かのやり方に慣れたり、人間関係を経験したりします。AIにとって、経験に当たるものがデータなんです。例えば、唐突ですが、そこに犬がいたとします。あなたは、それは犬だ、と認識できます。それはどうしてできるのでしょう? 多分、たぶんですが、生まれたての赤ん坊は、犬という認識はできないでしょうね。IQが200以上あるような天才になる赤ん坊でも無理だと思います。なぜなら、犬だと認識する為には、こういった姿かたちをしたものが犬だという記憶が必要だからです。頭の中に記憶している犬と目の前にいる存在を比較して、合致した場合に犬だと判断するわけですね。猫と犬は区別できるわけです。それを人間の脳は瞬時に行います。<br /> 赤ん坊の頃は、犬という認識はない。=>犬の写真やアニメを見たり、実際の犬に会う。それが犬という名前だと教えられるわけです。犬種が変わると最初は、同じ犬だという認識はできないかもしれませんが、その度に学習していきます。<br /> これをAIにあてはめると、どうなるでしょうか?<br /> データは犬の写真にしましょう。犬の写真を犬という名前で画像認識させます。これをコグニティブといいます。犬の写真を数千枚画像認識させると、犬の特徴を学習しますので、新たな犬の写真を見せるとそれは犬だと判断できるようになります。これを機械学習と言います。Machine Learning (ML) マシンラーニングです。犬の写真と犬という名前をセットにして学習させることを、教師つき機械学習と言います。Supervised MLですね。 この他に、教師なし機械学習や深層学習(Deep Learning)というのもありますが、今のところは教師つきの機械学習を覚えておきましょう。<br /> このように、AIを学習させるためには、まず機械学習をさせます。数億というデータを学習させるとかなり賢くなります。こんなふうにして、AIは多くのことを学習していきます。</p> Masao Kato