Open GENZITSU opened 3 years ago
クラウドソーシングの結果が、時流の出来事に影響を受けるかどうかを調べた論文。
調査の結果、確かに影響を受けることが確認され、考えられる対策を述べている。
以下特徴的なスライドを抜粋
特にツイートなどの文書に対してトレンドの影響をもろにうけるデータに、アノテーションするときは意識しておくべきかもしれない。
考えられるバイアスを事前に取り除く努力などがいるかも。
雇用主側が考える退職理由と被雇用者が考える退職理由にはギャップがありましたよという調査報告。
以下の図が示すように、
雇用主側は報酬やキャリア開発、ヘッドハンティングなどが理由と考えているが、
実態は、組織に認められているかや、所属意識、信頼できるチームなど、関係性に起因するものが大事だったりする。
こういうギャップがあるのは面白い。
働いていて心地よい環境づくりや関係性が大事なのかもしれない。
株式会社電通デジタル(本社:東京都港区 代表取締役社長執行役員:川上 宗一 以下、電通デジタル)、ヤフー株式会社、PARTYと共同で警察庁から写真や情報提供などの協力を得て実施したAI(画像解析・⽣成技術)を⽤いて指名⼿配被疑者の現在の姿を予測するプロジェクト「TEHAI」
アイデアは面白いが実用的なのかどうかは大いに怪しい。
夜間など鮮明ではない防犯カメラの映像から人物を特定するための技術を開発したと発表した。移動中の人物を同じカメラで撮影した複数枚の画像から、カメラの位置、角度、焦点距離を算出し、対象人物の身長を推定する仕組み。これにより、長さの基準となるものが映り込んでいない場合でも身長を推定し、対象人物の特定を可能にする
長さの基準となるものが映り込んでいない場合でも人物の身長を推定可能な、マーカーレスな人物照合技術を開発した。同社のAI技術「行動分析技術Actlyzer」によって認識した人物の骨格情報を活用し、映像の中で常に同じ身長になるようにカメラの位置や設置角度を導出する仕組み
同じようなアイデアが別プロジェクトでも使えそうだ。
youtubeのすの推薦アルゴリズムの検証をbotで行い、フィルターバブルから抜け出すことが可能かを議論した論文。
botを使用して、推薦システムを検証するというアイデアが面白い。
DATE=`date -d '90 days ago' '+%Y%m%d'`;
echo $DATE;
macの場合は
DATE=`date -v-90d +%Y%m%d`;
echo $DATE;
定期実行処理をする際に便利そう。
haggingface transformersをさらに使いやすくしたライブラリ。
使用例
モデルをinitialize
して、train_model
してeval_model
するだけでよい
# Preparing eval data
eval_data = [
["Theoden was the king of Rohan", 1],
["Merry was the king of Rohan", 0],
]
eval_df = pd.DataFrame(eval_data)
eval_df.columns = ["text", "labels"]
# Optional model configuration
model_args = ClassificationArgs(num_train_epochs=1)
# Create a ClassificationModel
model = ClassificationModel(
"roberta", "roberta-base", args=model_args
)
# Train the model
model.train_model(train_df)
# Evaluate the model
result, model_outputs, wrong_predictions = model.eval_model(eval_df)
# Make predictions with the model
predictions, raw_outputs = model.predict(["Sam was a Wizard"])
Named Entity Recognitionの使い方も簡単で以下のようにデータを渡してあげるだけでよい。
# from https://github.com/ThilinaRajapakse/simpletransformers/blob/master/examples/named_entity_recognition/named_entity_recognition.py
# Creating train_df and eval_df for demonstration
train_data = [
[0, "Simple", "B-MISC"],
[0, "Transformers", "I-MISC"],
[0, "started", "O"],
[0, "with", "O"],
[0, "text", "O"],
[0, "classification", "B-MISC"],
[1, "Simple", "B-MISC"],
[1, "Transformers", "I-MISC"],
[1, "can", "O"],
[1, "now", "O"],
[1, "perform", "O"],
[1, "NER", "B-MISC"],
]
train_df = pd.DataFrame(train_data, columns=["sentence_id", "words", "labels"])
NERタスクはデータ整形部分が結構大変なので、ここまで簡単に訓練できるようになるのは大きい。
CUDA GraphsはCUDA 10で追加されたCUDAの機能の一つで、複数のCUDA Kernelの実行にかかるオーバーヘッドを減らすための機能です。
基本的には依存関係表すことができるグラフにCUDA Kernelを登録して、依存関係を考慮して順番にCUDA Kernelを実行するという仕組みです。このCUDA Graphsを通して実行すると普通にCUDA Knernelを実行するのに比べてCUDA Kernelの実行オーバーヘッドを減らすことができます。
このnotebookに詳しく書かれている。
コードを20行ぐらい書く必要がある。
また、ディープラーニングにおいてすべてのレイヤーがグラフに登録できるものでなかった場合、ネットワークの一部部分だけグラフを構築する方法も用意されています。
入力のtensorのshapeが変えられないなど制約がいくつかあります。詳しくはこちらをご覧ください。
計算処理がシンプルなGELUではあまりゲインがないが、Linear + Dropoutで構成されるモデルであれば3倍程度早くなる模様。
イメージ動的な計算グラフを静的にして高速化するかんじなのだろうか?
なんにせよ高速化テクが増えるの嬉しい。
特に誇大広告として語られてしまっているのが、 1,組合せ最適化問題(誇大広告度大) 2,量子化学計算(誇大広告度中) 3,量子機械学習(誇大広告度小) の三種類となっています。実際には今の量子コンピュータではこれらの問題を効率的に解くことはできません。では、なぜ今量子コンピュータが注目されているのでしょうか?それは、10年後20年後を見据えてということになっています。今後を見据えて時間がかかるので、今から今後万が一より強力な量子コンピュータが出てきたときのために準備しましょうということです。
組合せ最適化問題も量子化学計算も高速には計算できないことが分かり、現在に至ります。量子機械学習も試されていますが、今のところ高速性は特に発揮されていません。
やはりすぐには使えない。10-20年はかかると覚悟をして学習や中長期の研究計画を立てるということでしょう。多くの企業は実用化をあきらめてこのような方針を取り始めています。
量子コンピュータの正しい現状がわかる良記事。
pyautoguiのスクリーンショット機能と画像の差分を用いて、画面のスクリーンショットを自動で撮るプログラムの紹介。
目の付け所が面白い。
mac / linux限定になるが、以下で測定可能
time python3 hoge.py
以下のようなTimerコンテキストマネージャーを作るのもあり
# from https://www.yoheim.net/blog.php?q=20171005
from datetime import datetime
# 実行時間を計測するためのユーティリティ
class Timer(object):
def __enter__(self):
self.start = datetime.now()
def __exit__(self, *exc):
diff = (datetime.now() - self.start).microseconds / 1000
print("time: {}ms".format(diff))
# from https://www.yoheim.net/blog.php?q=20171005
$ kernprof -l -v perf3.py
Wrote profile results to perf3.py.lprof
Timer unit: 1e-06 s
Total time: 0.874731 s
File: perf3.py
Function: get_images at line 12
Line # Hits Time Per Hit % Time Line Contents
==============================================================
12 @profile
13 def get_images():
14 1 4 4.0 0.0 images = []
15 11 35 3.2 0.0 for index in range(500, 510):
16 10 282544 28254.4 32.3 with urlopen("http://www.yoheim.net/image/{}.jpg".format(index)) as res:
17 10 592147 59214.7 67.7 images.append(res.read())
18 1 1 1.0 0.0 return images
# from https://www.yoheim.net/blog.php?q=20171005
Filename: perf4.py
Line # Mem usage Increment Line Contents
================================================
12 38.965 MiB 0.000 MiB @profile
13 def get_images():
14 38.965 MiB 0.000 MiB images = []
15 44.242 MiB 5.277 MiB for index in range(500, 510):
16 43.980 MiB -0.262 MiB with urlopen("http://www.yoheim.net/image/{}.jpg".format(index)) as res:
17 44.242 MiB 0.262 MiB images.append(res.read())
18 44.242 MiB 0.000 MiB return images
2017年記事だが、網羅性のある良記事
マスク着用時でも顔認識をうまく機能させるため行った取り組みの紹介。 昨年よくみたアプローチではあるが、顔画像にマスクを人工的に後付けすることでデータを作成し、モデルの学習を行っている。
これを発展させた取り組みがMask Face Recognitionというコンペで3位に入賞しているようで、以下のように作成したとのこと。
employed ArcFace [15] to train a ResNet model. A1 Simple applied MaskTheFace [3] method to synthetically generate masked face images in the training dataset- MS1MV2. A1 Simple is trained with cosine annealing LR scheduling to adjust the learning rate. In the evaluation phase, A1 Simple used the provided landmark facial point and bounding box in the MFRC-21 to align and crop the face image to 112×112. The feature embedding of the presented solution is of size 512-D. The model is trained with ArcFace loss. During the training phase, three data augmentation methods are used- random resized crops, random horizontal flip, and color jittering.
ブログ中ではawsのface recognition serviceよりもマスク画像に対して好成績をとっているという記載がある。
わりとオーソドックスな手法で、ちゃんと性能が上がっているのがすごい。
三井住友海上火災保険が、AI 技術を搭載したドライブレコーダーを使い、道路の損傷を自動検知するサービスを12月に発売することが26日、分かった。自治体の道路点検業務の効率化につなげる。
MoT社との動向が気になる。
同社ではこれまで、唐揚げなどの材料となる鶏肉を検査し、血合いを取り除く工程を、工場員の目視と手作業に任せていた。しかし従来の手法では端材が増えやすくフードロスにつながる他、工場員の負担にもなることから、画像認識AIを活用して自動化。食用にできず飼料や肥料にリサイクルしていた鶏肉を7割減らせたという。
ニチレイが開発したシステムでは、これまで目視と手作業で行っていた一連の工程を、(1)鶏肉を目視で確認する、(2)血合いの位置や有無を判断する、(3)実際に手で取り除く──という作業に分解。それぞれを自動化することで、フードロスの削減やスピードアップにつなげているという。
肉は形状が不安定で影ができやすく、血合いとそれ以外の色の違いもあいまいで、誤検知を起こしやすい。しかし、ディープラーニングなどを使って判断するとそういったあいまいな部分も判別できることが分かり、AIの活用を決めた
AIで検出した結果に応じて、その後処理のが自動で行えるようになっている点が素晴らしい。
工数7割減という大きな成果も注目に値する。
地味に見た目が似ているが、記号としては異なる横棒を全て統一するためのスクリプトが載っている。
# from https://qiita.com/non-caffeine/items/77360dda05c8ce510084
import re
def replace_hyphen(text, replace_hyphen):
"""全ての横棒を半角ハイフンに置換する
Args:
text (str): 入力するテキスト
replace_hyphen (str): 置換したい文字列
Returns:
(str): 置換後のテキスト
"""
hyphens = '-˗ᅳ᭸‐‑‒–—―⁃⁻−▬─━➖ーㅡ﹘﹣-ー𐄐𐆑'
hyphens = '|'.join(hyphens)
return re.sub(hyphens, replace_hyphen, text)
使う機会がありそうなのでメモ。
AIカメラやエッジデバイスに組み込める20個のAIアルゴリズム集
装備されているアルゴリズム。
コメント
エッジデバイスにどのような機能が装備されているかの参考事例となりそう。
段ボールや犬・猫・トラックなどの検知機能もあり、幅広いユースケースに対応しようという気概を感じる。
出典
元記事