ソフトウェアエンジニアが品質保証を学んでわかったこと / What software engineers have learned about quality assurance
21日のアドベントカレンダーを2日遅れでお届けしております。 忘年会シーズンに入る前に調べておけばよかったと反省するばかり。二日酔いが辛い…。 気を取り直して、今回はFactorization Machines(以下、FM)について書いていきます。 1ヶ月ほど前にRecSys2014読み会で知ってから結構気になっていたで、調べてみた結果をまとめています。 FMはRendleさんが2010年にICDMに出したのが初出の様なので、割りと前から存在していたのですが、完全にノーマークでした。研究はRendleさんがほぼメインで行っている様ですが、KDD2014のNetflixが出しているまとめにも載っているので、業界的には結構有名なんだろうと思います。ノーマークだったけどorz はじめに 協調フィルタ系のレコメンドにトレンドについては、 Collaborative Filtering(CF) →
ゼロックスの研究部門が、写真の良し悪しを判定するプログラムを開発しました。高く評価される写真作品には何か特別感というか、言葉で表現するのが難しい「何か」があるものです。このプログラムでは、ある写真にそんな「何か」があるかどうかを判定してくれるんです。 そんなこと機械にわかるの? って思われるかもしれませんが、ちゃんとうまく行っているようです。少なくともアルファ版で判定された実例を見る限り、なかなかの審美眼があるようです。 このプログラムAesthetic Image Searchに「良い写真」と判定されたものと、「悪い写真」と判定されたものの違いは、並べて見るとすぐわかります。上の画像の左側の写真群には、はっとするような美しさが感じられます。特別な写真にある「何か」がそこにはあります。ぱっと目を引く何か。一方、右側の写真はそうでもありません。ぼやけてるとかものすごく構図が悪いとかではなく、
こんにちは、k_oomoriです。最近、機械学習の分野でFactorization Machines (FM)という手法があることを知りました。Matrix Factorization (MF)は知っていたのですが、共にfactorizationという単語を含んでいるため、何か関係があるのだろうか?と気になり調べてみました。 ここではサンプルデータとしてFactorization Machinesの論文で使われていたものを使用します。 タイタニック (TI)ノッティングヒルの恋人 (NH)スターウォーズ (SW)スタートレック (ST) Alice (A)531 2010-12010-22010-4 Bob (B)45 2009-52009-8 Charlie (C)15 2009-92009-12 表1. 映画に対する評価 Alice, Bob, Charlieの3人が4本の映画作品に対
「HRTの原則」という言葉をご存知だろうか。 これは書籍 Team Geek ―Googleのギークたちはいかにしてチームを作るのか で紹介されている言葉であり、本書ではほぼ一冊すべてをかけてこのHRTの原則とその実践方法とを様々な角度から紹介している。 1. 謙虚(Humility) 2. 尊敬(Respect) 3. 信頼(Trust) の3つの価値が大切にされており、エンジニアとしてもチームや組織、顧客との対話においてこれらの価値を重んじていくことが成功につながる、というものである。 あらゆる人間関係の衝突は、謙虚・尊敬・信頼の欠如によるものだ Team Geek p.15 プログラマとして成功するには、最新の言語を覚えたり高速なコードを書いたりするだけではいけない。プログラマは常にチームで仕事をする。君が思っている以上に、チームは個人の生産性や幸福に直接影響するのである。 Team
岩波データサイエンス vol.2 の発刊を記念して、刊行トークイベント「統計的自然言語処理 - ことばを扱う機械」が 3月3日 に開催されました。 岩波データサイエンス Vol.2 : 岩波データサイエンス刊行委員会 : 本 : Amazon.co.jp トークイベント「統計的自然言語処理ーことばを扱う機械」(岩波データサイエンス Vol.2 刊行記念) - connpass イベントの様子はニコニコ動画さんで生中継されましたが、その録画は YouTube で公開させてもらっています。 【トークイベント「統計的自然言語処理ーことばを扱う機械」(岩波データサイエンス Vol.2 刊行記念) - YouTube】 1. 挨拶と著者団トーク 2. 招待講演「本当は怖い統計的自然言語処理」(賀沢秀人; グーグル株式会社) 3. 自然言語処理についてのパネルセッション+クロージング 自然言語処理に詳
世界トップレベルの囲碁棋士を負かし、電子メールの返信にも利用されているGoogleの人工知能(AI)ソフトウェアが、「iPhone」向けにリリースされる。 Googleは米国時間6月6日、AppleのiPhoneや「iPad」に搭載されるソフトウェア「iOS」のサポートを追加したTensorFlowの初期バージョン(バージョン0.9のリリース候補版)を公開した。TensorFlowは、人間の脳細胞と同様の方法でコンピュータにデータを処理させる「ニューラルネットワーク」ソフトウェアで、コンピューティング業界に旋風を巻き起こしているAIの主要基盤である。 TensorFlowを搭載すればiPhoneのIQが直ちに上昇するというわけではないが、そのニューラルネットワーク機能は、さらに洗練されたアプリにつながるものだ。GoogleやTensorFlowを利用するその他の企業から、そのようなアプリが
ロボットから自動運転車、はては囲碁・将棋といったゲームまで、昨今多くの「AI」が世間をにぎわせています。 その中のキーワードとして、「強化学習」というものがあります。そうした意味では、数ある機械学習の手法の中で最も注目されている(そして誇張されている・・・)手法ともいえるかもしれません。 今回はその強化学習という手法について、基礎から最近目覚ましい精度を出しているDeep Q-learning(いわゆるドキュン、DQNです)まで、その発展の流れと仕組みについて解説をしていきたいと思います。 本記事の内容をベースに、ハンズオンイベントを開催しました(PyConJPのTalkの増補改訂版) Pythonではじめる強化学習 OpenAI Gym 体験ハンズオン 講義資料の方が図解が豊富なので、数式とかちょっと、という場合はこちらがおすすめです。 Tech-Circle #18 Pythonではじ
Tech Lead(TL/テックリード)の役割。聞きなれない名前かもしれない。リードプログラマやテクニカルリードと呼ばれることも。過去にいくつものチーム(最大で10人以上)の Tech Lead をやってきた自分の経験を踏まえて書いてみる。 Tech Lead の主な役割 Tech Lead はエンジニア班長と言いかえるとイメージがわきやすいかもしれない 顧客に提供したい価値(プロダクトゴール)を正しく理解する エンジニアチームの生産性を可能な限り最大化。プロダクトマネージャ・デザイナと顧客に価値を提供する Product の Launch に責任を持つ Product の Launch 後のメンテナンスに責任を持つ エンジニアを過負荷から守る ときにはマネージャ、プロダクトマネージャのアイデア、スケジュールに NO を言う。代替案を提示する チーム内のテクニカルデザイン、採用技術などに責
(Photo credit: A Health Blog via Visual Hunt / CC BY-SA) 「人工知能」ブームが本格化してまだほんの数ヶ月だと思うんですが、気がついたらTV含む大手メディアが皆こぞって毎日のように「人工知能」を取り上げ、あまつさえ政府や与党の諮問会議でまで「人工知能」の語が飛び交う有様で、一体何をどうしたらこうなるのか僕には全く分かりません(汗)。 とは言え、実際にビジネスの現場でも「人工知能」への期待感が日に日に高まり続けているのは事実で、例えば友人知人の経営者との酒席でも「最近人工知能ってめっちゃくちゃ流行ってるじゃん、あれって実際どうなの?本当に役に立つの?今からでも人工知能事業に参入すべきなのかな?それとも俺たちあいつらに滅ぼされちゃうの?」みたいなことを聞かれることが多いんですよね。 ということで、そういう「人工知能」ブームに乗り遅れたけれど
何の話かというと TensorFlow Tutorialの最初に登場する「MNIST For ML Beginners」では、次の方針で手書き文字の分類器を作成しています。(今の段階では、下記が何を言ってるのか分からなくても大丈夫です。) ・28x28ピクセルの手書き文字画像を各ピクセルの濃度を並べた784次元ベクトルと見なす。 ・784次元ベクトル空間を10箇所に分類する線形の多項分類器を用意する。 ・多項分類器の出力値をsoftmax関数に入れて、784次元空間の各点について、「0」〜「9」のそれぞれの文字である確率を定義する。 ・上記の定義の下で、トレーニングセットが得られる確率を最大にするよう、線形多項分類器のパラメーターを調整する。 これが一体何を言ってるのか・・・ということを数学的に理解していただくことが目標です。今回は、下準備として、より単純化したデータで上記と同じ処理を実装
こんにちは、はてなウェブオペレーションエンジニアの id:y_uuki です。 GMOペパボ株式会社さんとの共同で「ペパボ・はてな技術大会」を福岡と京都で開催します。 今回は、ペパボさんとはてなのインフラエンジニア・ウェブオペレーションエンジニアが集まり、インフラ技術基盤をテーマとした様々なトピックについてご紹介する予定です。 「Webサービスの運用管理からの解放」、「STNSで実現する次世代ユーザー管理」、「システムを改善する行動ログ 」、「WebサービスにおけるOSとミドルウェアのパフォーマンス改善」といったテーマによるトークを予定しています。 さらに、ペパボさんとはてなの若手インフラエンジニア・ウェブオペレーションエンジニアによる座談会も予定しています。 日程と場所 はてな・ペパボ技術大会: 7月2日(土)@はてな京都オフィス ペパボ・はてな技術大会: 7月9日(土)@ペパボ福岡支社
Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe
概要: 本研究では,ディープネットワークを用いて白黒画像をカラー画像に自動変換する手法を提案する.提案手法では,画像の大域特徴と局所特徴を考慮した新たな畳込みネットワークモデルを用いることで,画像全体の構造を考慮した自然な色付けを行うことができる.提案モデルにおいて,大域特徴は画像全体から抽出され,局所特徴はより小さな画像領域から計算される.これらの特徴は“結合レイヤ”によって一つに統合され,色付けネットワークに入力される.このモデル構造は入力画像のサイズが固定されず,どんなサイズの画像でも入力として用いることができる.また,モデルの学習のために既存の大規模な画像分類のデータセットを利用し,それぞれの画像の色とラベルを同時に学習に用いることで,効果的に大域特徴を学習できるようにしている.提案手法により,100年前の白黒写真など,様々な画像において自然な色付けを実現できる.色付けの結果はユー
先週のRubygems.orgの脆弱性報告を受けてgemを作りました github.com 脆弱性の詳細 使い方 自分がリリースしたgemのうち攻撃を受けた可能性があるgemを検索 Rubygems.orgに上がっているgemとリポジトリに上がってるソースコードの差分を調べる 既知の問題 まとめ 脆弱性の詳細 RubyGems.org gem replacement vulnerability and mitigation - RubyGems Blog (翻訳)RubyGems.orgでgemが置き換えられる脆弱性とその緩和策について - Qiita gemの名前にダッシュが含まれるもので(例:'blank-blank')、2014年6月11日以降、2015年2月8日以前にアップロードされたものは攻撃を受けている可能性があります。(2015年2月8日から2016年4月2日の間にアップロー
cgoを用いるとCのライブラリをGoバイナリにリンクしたり、Goパッケージの一部をCで書いたりできる。更にGo 1.5以降では、GoのパッケージをC用の静的ライブラリまたは動的ライブラリにまとめておいて、Cからリンクすることもできる。 これらの機能はすべてgo buildコマンドに統合されているので、普段は特にcgoを使っていることを意識することは少ない。しかし、pure goのコードのビルドにしたところでその裏側ではコンパイラ、アセンブラ、リンカが走っているわけである。ではcgoの場合をこの水準で見るとどのような処理が行われているのだろうか。 要は、gcc(1)の裏ではcc1, as, collect2なんかが走ってるよね、cgoではどうなってるの? という話が本稿の話題である。 なお、Goのオブジェクトファイルがプラットフォーム独立な(ELFとかではない)フォーマットであることや、Go
Treasure Dataに収集したデータを集計・出力するためにジョブをスケジュール登録するにあたり、ブラウザコンソールやAPIから直接行うと履歴管理やレビューができないといった課題を解決するために Pendulum というgemをつくりました。 PendulumはDSLで記述された定義に従い、Treasure Dataのスケジュールジョブを管理します。 定義ファイルをGit管理することで、履歴管理やGitHubと連携したコードレビューが可能になります。 余談ですが、Pendulumは振り子という意味で、定期的な実行という意味と宝探しのダウジング的な意味から連想しています。ペンデュラム。響きがカッコイイ。 使い方 Schedfileという名前で定義ファイルを用意して、 schedule 'my-schedule-job' do database 'db_name' query 'selec
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く