機械学習

機械学習をやろうとしたらデータクレンジングに明け暮れていた件(2) ~大量のファイルを分割アーカイブする~

技研のまつけんです。

前回の記事では、複数のアーカイブを展開してファイルやフォルダの名前の傾向を調べる過程を紹介しました。今回は、その逆の「多数のファイルを分活してアーカイブする」ためのシェルスクリプトを紹介したいと思います (前回の「まとめ」では違う予告をしましたが、その前に今回の作業をする機会があったので、先に記事にしました)。

自分がデータクレンジングしたものを誰かに渡すことがあります。その際、メールで送るにしてもサーバに置くにしても、再びアーカイブ (+圧縮) すると便利なのですが、数ギガバイトのzipやtgzだと色々と不便です。そこで、分割してアーカイブしたくなります。それを実現するのに、真っ先に思いつく方法は、a、b、cという3つのフォルダがあるのであれば (そして、3つのフォルダ内のデータ量に偏りが無いのであれば)、

のように

  • aで始まるものは、a.tgz
  • bで始まるものは、b.tgz
  • cで始まるものは、c.tgz

としてしまうことでしょう。

続きを読む

機械学習をやろうとしたらデータクレンジングに明け暮れていた件(1) ~フォルダ・ファイル名の傾向と対策~

技術研究所のまつけんです。

今回はデータクレンジングの話です。データクレンジングというのは、データを機械学習に流し込む前に全体的に眺めて、必要なら整形する作業です。KaggleやSIGNATEなどのコンテストではクレンジングされた状態のデータが提供されますが、実際の業務では、必ずしもそうとは限りません。そして、それはデータの中身に限った話ではありません。フォルダやファイルの名前が一定の規則に従ってない場合、それを規則的な名前にするところから始まります (規則的な名前でないとループなどで処理したりするのに不便です)。

機械学習に使う大きなデータをよそから転送する際、たいてい、DVDやアップローダなどで受け取ります。後者の場合はzipなどでアーカイブ (および圧縮) されていることが多いのですが、zipファイルが数十個ある場合もあります。今回の記事では、転送したデータを確認し、フォルダ名、ファイル名などを扱いやすい形に変換する過程について、説明します。データ数が膨大な場合を想定していますので、多くはbashスクリプトにより自動化しています。といっても、UNIX/Linuxをインストールする必要があるわけではありません。今から紹介する手法はcygwin上で行うことを想定しています (スクリプトは全てcygwinのbashで動作確認しています)。

今回は、機械学習用のデータについて、フォルダ構成を確認し、必要に応じて整形する手順を紹介したいと思います。

続きを読む

Jupyter NotebookからGPUの占有状況をワンタッチで調べる

技術研究所(技研)のまつけんです。

技研では現在、2台のゲーミングデスクトップPCにLinux (Ubuntu)とJupyterをインストールして、共有で計算サーバとして使っています。2台のPCにグラフィックボードが2枚ずつ搭載しているのですが、技研メンバ全員が使うので、GPUやGDDR RAMなどのリソースの順番待ちが発生します。

グラフィックボードのステータスはnvidia-smiコマンドで確認するのですが、タスクの詳細(オーナなど)については、別途psコマンドなどで調べる必要があります。そこで今回、nvidia-smiコマンドの結果から自動的にpsコマンドで詳細を調べるシェルスクリプトを作ってみました(nvidia-smiのバージョンが450の場合は、awk ‘{print $5}’ ):

続きを読む

機械学習用の計算サーバ構築手順を纏めてみた

技術研究所(技研)のまつけんです。

技研では現在、2台のゲーミングデスクトップPCにLinux (Ubuntu)とJupyterをインストールして、共有で計算(主に機械学習)サーバとして使っています。最近、計算量が増えてきたので、近いうちに3台目を購入し、セットアップする予定です。また、休眠状態だったゲーミングラップトップPCがあったので、一足先にセットアップして計算サーバ化しました。この記事では技研で確立した「機械学習用の計算サーバ構築手順」を紹介したいと思います。OSはUbuntu Server 20.04 LTSです。

※ここに記載されいてる情報は2020年9月現在のものです。また、今回のセットアップ対象は、DELLのゲーミングラップトップG5[1]です。

続きを読む

fasttextとWatson Natural Language Classifierの文書分類比較

テクニカルエバンジェリストの井上(祐)です。

この記事は「CRESCO Advent Calendar 2019」24日目の記事です。

文章に書かれている内容から、どのカテゴリに分類するか判断を行う文書分類は、新聞記事のカテゴリ分類(政治、経済、スポーツなど)や、身近なところでは迷惑メールフィルタでの利用があります。また業務においては、大量に発生する文書、例えば契約書、提案書、日報、作業報告書などを効率よく分類することで業務効率化を図るなど様々な利用が考えれます。今回、文書分類器としてfasttext、Watson Natural Language Classifierを対象に分類精度、速度、費用について比較を行います。

続きを読む

AIマイコン MAiXDUiNOを試してみた

テクニカルエバンジェリストの井上(祐)です。

最近、気になっているエッジコンピューティング。クラウドのパワフルな環境ではなく、データの発生源に近いエッジ側でデータをリアルタイムに処理しその場で推論を行なったり、ある程度処理をしたらクラウドにデータを渡したり、このエッジで動かすAIに注目が集まっています。例えば、動画から何かを識別する際、ダラダラと動画データをクラウドに送り込んでAIに処理させるのは、通信の負荷を考えると現実的ではありません。やはりエッジ側のAIで認識し、結果をクラウドに送るのが良さそうです。ちなみに、このようなエッジコンピューティングはAIoTと呼ばれています。本記事では、そのひとつMAiXDUiNOを試したという内容となります。

続きを読む

深層学習による顔認識

あらまし

顔認識を実際に動かしながら試すことで顔認識がどういうものかを体験します。
実装に使ったのはdlibの畳み込みニューラルネットワークベースの認識器です

顔認識の必要性

顔認識の必要性については今や説明するまでもないほど身近なものになっていると思います。
監視カメラにおいては顔だけではなく、他の特徴も含めて利用し複数台のカメラの画像を高速に処理できる時代が到来しています。
例えば渋谷で発生した事件ではスマートフォンの画像から犯人を突き止めたようです。
今回は顔認識の精度を大幅に向上させた深層学習ベースの手法を試したいと思います。

 

 

続きを読む

数学セミナーを実施しました (2)

技術研究所のまつけんです。前回に引き続き、2月25日に開催した数学セミナーのレポートをさせていただきたいと思います。

第2部「超入門! 今日から機械学習の教科書を読めるようになる」では、機械学習の勉強をしようと思ったときに出てくる初歩的な数式について解説しました。「住宅のスペックからその住宅の価格を推定するAIを作るとしたら?」という例題:

を用いて、ベクトル・行列、最適化、微分(偏微分)について学習する内容でした。

続きを読む

「AI ってなんだ」

技術研究所の (あ) です。
この一年くらいで、社内外のいろいろな方々向けに眼科画像と機械学習の話をさせていただく機会がいくつかありました。長めの話をする場合には、「そもそも機械学習とか AI (人工知能) ってなぁに?」というあたりから話を始めます。

先日もそのあたりに関する話が社内報向けの Q&A形式の記事になったのですが、紙面も限られていて削った部分もありました。せっかくなのでそれをベースに、新たに内容も追加してブログ記事にしてみました。

続きを読む

技術研究所 オープンハウス2019 に来てみませんか?

◇◇◇ 参加登録は本記事最後のリンクからどうぞ ◇◇◇

こんにちは 技術研究所の101です。

3月に開催される当技術研究所の研究発表会「オープンハウス2019」の開催告知をさせて頂きます。
昨年に引き続き、今年も一般の方へもオープンなイベントとして開催します。
(昨年の様子はこちらをご参照ください。)

オープンハウスとは、
研究内容と成果を多くの方に知っていただくために、研究所を一般公開するイベントです。

続きを読む