Taste of Tech Topics

Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

「量子コンピュータはじめの一歩」オフ会でLTを行いました

こんにちは、@です。

このところ、あちこちで量子コンピュータに関する勉強会が開催され、盛り上がりを感じています。
私自身もこの分野に興味を持ち、量子コンピュータに関するブログを書いたり、LTしたりといった活動を行っています。
note.mu

昨日は、CQ出版社Interface編集部さん主催で「量子コンピュータはじめの一歩」オフ会が開催されたため、参加してきました。
inteface-meet-up.connpass.com

この会では、Interface 8月号に「量子コンピュータはじめの一歩」を執筆された京都大学・藤井啓祐 准教授の講演と、一般から募集したLTが行われました。

私も「量子コンピュータのプログラミング・コンテスト体験記」と題したLTを行いました。

www.slideshare.net

私のLTでは、先日開催された量子コンピュータのプログラミング・コンテスト「Microsoft Q# Coding Contest」について、参加者視点で様子や感じたことをお話ししました。
codeforces.com

今回のコンテストに参加してみて、量子プログラミングの楽しさを感じることができたのは良かったです。
決められたルールの範囲で量子ビットを操作し、求める結果に変化させていく点はパズルっぽいです。
そのため、パズルが好きな人は、量子プログラミングに向いているんじゃないかと思います。


また、気さくな方が多く、懇親会も楽しく過ごさせて頂きました。
私自身、量子コンピュータについて勉強中なため、藤井先生に様々なことを教えて頂き、大変勉強になりました。
CQ出版社編集部のみなさん、講演者・参加者のみなさん、ありがとうございました!
また、こういう会があったら参加したいです😊

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

データ分析基盤Elasticsearchを使い倒したいエンジニア募集! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

社内勉強会でリアクティブについて発表した

こんにちは!こんばんは!Javaエンジニアの しんどー です。腹筋ローラーで今日も腹が痛い!

さて、AcroquestではLTxRTという社内勉強会があり、最近勉強した技術やプロジェクトのフィードバックなどが頻繁に行われています。

私も先日、「Spring WebFluxで学ぶReactive Application」というタイトルで発表しました。

"リアクティブ"とだけ書くと文脈によってイメージが全然違ってしまうのですが、今回はサーバサイドでのリアクティブについて解説しました。

JavaでリアクティブというとRxJavaを思い浮かべる方は多いと思います。国内ではLINEさんがRxJavaをサーバサイドで利用して、APIを非同期化する取り組みを行っていますね。

そして2017年10月にリリースされたSpring Framework 5.0で、Spring WebFluxというリアクティブなWebフレームワークがついにサポートされるようになったのです! (興奮気味なのは単に私がSpring好きなせいですw)

発表ではリアクティブの背景的な部分から入り、リアクティブのメリット/デメリット、ユースケースなどを説明しました。Spring WebFlux自体の説明が薄くなってしまったのはご愛嬌です。

スライドの最後にも書きましたが、リアクティブは正直難しくまだまだ勉強が足りていません・・・
ですが今後のサーバサイド開発で重要性が増すことは間違いないので、くじけずにやっていきます!!!

f:id:acro-engineer:20180802185855j:plain
こんな感じでやってます

Acroquestに興味を持った方はこちら↓↓からご連絡ください!

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
モノリシックなアプリケーションをマイクロサービス化したいエンジニア募集! - Acroquest Technology株式会社のWeb エンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

AWS X-RayをServerless Frameworkで簡単構築・可視化まで

こんにちは!エンジニア3年目、フロントエンド&AWSサーバーレス系エンジニアを目指し勉強中のmiuraです。

サーバーレス構成だと簡単に立ち上げられる一方で、ある程度の開発規模になってくると非同期に連携したり、複数のサービスが関係したりするので、
エラーになった際にどこで失敗しているのか、デバッグしていくのが大変になることがありませんか?
または、レンスポンスが遅いと感じるがどのAWSサービスが起因して遅くなっているか確認するのが大変だと思ったことがありませんか?

そこで活躍するのがAWS X-Rayです。
AWS X-Rayはトレース対象であるサービスのリクエスト・レスポンス情報を収集するサービスで、
AWSコンソールにて収集した結果をマップ形式で見ることができ、各サービスの実行時間をグラフで可視化することができます。

今回はサーバーレスアプリへのX-Rayの適用を、Serverless Frameworkを用いて簡単に追加し、AWS上で可視化するところまでを紹介します。

全体構成

f:id:acro-engineer:20180318152127p:plain:w600

全体構成図中の①、②に分けて話をします。
API GatewayからAWS Lambdaの実行
 AWS LambdaがAPI Gatewayをトリガーとして実行されていることを可視化してみます。

AWS LambdaからAWS SNSやDynamoDBの呼び出し
 ①で作成したAWS LambdaからAWS SNSを呼び出し、AWS SNSをトリガーに実行されるAWS LambdaにてDynamoDBの操作が行われていることを可視化してみます。

ツール/ライブラリ

ツールとライブラリは以下のものを使います。

  • サーバーレス
名前 バージョン
Serverless Framework 1.20.2
AWS SDK for JavaScript 2.176.0
AWS X-Ray SDK for Node.js 1.1.6
serverless-plugin-tracing 2.0.0


  • 開発
名前 バージョン
Python 3.6
AWS X-Ray SDK for Python 0.96

API GatewayからAWS Lambdaの実行

以前使用したServerless Frameworkを今回も使います。

まずはPython3系用のサンプルプロジェクトを作成します。

serverless create --template aws-python3 --path aws-x-ray-serverless
cd aws-x-ray-serverless

次に、Serverless FrameworkのX-Rayプラグインをインストールし、serverless.ymlにAWS X-Rayを有効にする設定と
API Gatewayの設定を行います。

npm install aws-sdk aws-xray-sdk serverless-plugin-tracing

aws-x-ray-serverless/serverless.yml

service: aws-x-ray-serverless

plugins:
  - serverless-plugin-tracing # トレース有効用のプラグイン

provider:
  name: aws
  runtime: python3.6
  region: us-west-2
  apiKeys:
    - aws-x-ray-serverless-api-key
  tracing: true # X-Rayでのトレースを有効にする
  iamRoleStatements:
    - Effect: Allow
      Action:
        - xray:PutTraceSegments # X-Rayにセグメントドキュメントをアップロードする権限を付与する
        - xray:PutTelemetryRecords # X-Rayにテレメトリをアップロードする権限を付与する
      Resource: "*"

functions:
  hello:
    handler: handler.hello
    events:
     - http: # API Gatewayの設定
        path: hello
        method: get
        private: true

以上で、AWS X-RayおよびAPI Gatewayの設定ができました!
このようにプラグインをインストールし、serverless.ymlにたった数行設定を書くだけでX-Rayを適用することが出来ます。

早速、AWSにデプロイをしましょう。

sls deploy

デプロイが完了したら、curlコマンドやRestClientなどでAPI Gatewayを呼び出してLambdaを実行させます。

curl -s 【API GatewayのURl】 -H "x-api-key:【APIキー】"

すると、実行結果をAWSコンソールのX-Rayのサービスにて見ることが出来ます。

f:id:acro-engineer:20180318175904p:plain:w800

緑色の円が表示されていることからLambdaの実行は成功したことが分かります。
5xxエラーや4xxエラーなどがある場合、赤色や黄色で表示してくれるのでひと目でどこに問題があるかを確認できます。
中央の数字はそのサービスでの平均レスポンス時間と 1 分間に送信したトレース数を表しており、どこで処理に時間が掛かっているのかなども確認することが出来ます。

本格的なプロダクトともなると、多くのLambdaを互いに呼び出す形で作ることになります。
その際にどこでエラーになっているかを上図のようなサービスマップで簡単に確認できるのは、私のような開発者にとっては嬉しい機能ですよね。

また、円グラフをクリックすればさらに詳細なトレース情報を見ることが可能です。
トレースについては次の構成での結果で説明します。

AWS LambdaからAWS SNSやDynamoDBの呼び出し

①でClient、API Gatewayを通してLambdaを実行する流れをAWS X-Rayで表示しました。
そこで次に、①の続きとしてAWS LambdaからAWS SNSやDynamoDBを呼び出して、それをAWS X-Rayで表示してみましょう。

まずは、AWS LambdaでのAWS SNSDynamo DBの呼び出しをトレースをするためにPythonAWS X-Ray SDKをインストールします。

pip install aws-xray-sdk -t .

次に自動生成したhandler.pyとserverless.ymlの一部を編集します。

aws-x-ray-serverless/handler.py

# -*- coding: utf-8 -*-
import json
import boto3

# AWS X-Rayのライブラリを読み込み
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

# AWS X-Rayのパッチを適用
patch_all()


def hello(event, context):
    body = {
        "message": "Go Serverless v1.0! Your function executed successfully!",
        "input": event
    }

    # AWS SNSを呼び出し
    sns = boto3.client('sns')
    try:
        sns.publish(
            TopicArn="arn:aws:sns:us-west-2:471043657237:hello",
            Subject=body['message'],
            Message=json.dumps(body['input'])
        )
    except Exception:
        raise

    response = {
        "statusCode": 200,
        "body": json.dumps(body)
    }

    return response


# AWS SNSで受け取った情報をDynamoDBに保存するLambdaスクリプト
def put_hello(event, context):
    sns = event['Records'][0]['Sns']

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('hello_log')

    try:
        table.put_item(
            Item={
                "timestamp": sns['Timestamp'],
                "id": sns['MessageId'],
                "subject": sns['Subject'],
                "message": sns['Message']
            })

    except Exception:
        raise

aws-x-ray-serverless/serverless.yml

provider:
  name: aws
  runtime: python3.6
  region: us-west-2
  apiKeys:
    - aws-x-ray-serverless-api-key
  tracing: true
  iamRoleStatements:
    - Effect: Allow
      Action:
        - xray:PutTraceSegments
        - xray:PutTelemetryRecords
        - sns:Publish # AWS SNSをPublishする権限を追加
        - dynamodb:PutItem # DynamoDBのテーブルにItemをPutする権限を追加
      Resource: "*"

functions:
  hello:
    ...

  # AWS SNSをトリガーに実行されるLambdaを追加
  putHello:
    handler: handler.put_hello
    events:
     - sns: hello

# DynamoDBのテーブルを追加
resources:
  Resources:
    helloLogTable:
      Type: 'AWS::DynamoDB::Table'
      Properties:
        TableName: hello_log
        AttributeDefinitions:
          - AttributeName: timestamp
            AttributeType: S
        KeySchema:
          - AttributeName: timestamp
            KeyType: HASH
        ProvisionedThroughput:
          ReadCapacityUnits: 2
          WriteCapacityUnits: 1

気づきましたでしょうか?
AWS LambdaでのAWS SNSDynamo DBの呼び出しをトレースすると聞くといろいろな設定が必要そうと感じますが、
実際にX-Rayの適用として追加で記述したのは、

  • patch_all()

だけ。
これだけでAWS SNSDynamo DBを呼び出すboto3などのライブラリにX-Ray用のパッチが適用されてトレースが出来るようになります。
この手軽さは正直異常ですね(^^;

実際に再度デプロイコマンドを実行して、curlコマンドやRestClientなどでAPI Gatewayを呼び出してみます。

sls deploy
curl -s 【API GatewayのURl】 -H "x-api-key:【APIキー】"

結果、AWSコンソールのX-RayのサービスにてAWS SNSやDynamoDBへのフローも表示されるようになりました。
Service Mapの下段にあるClientはAPI Gatewayを通してAWS Lambda、そしてAWS SNSを呼び出しており、次のトリガーとなっています。
上段のClientがそのAWS SNSから呼び出されたことを表しており、AWS Lambdaを通してDynamo DBにエラーなくアクセスしていることが分かります。

f:id:acro-engineer:20180501175611p:plain:w800

そして、赤い枠にあるような円グラフをクリックするとサービスの所要時間をヒストグラムで確認することができます。
これにより、レスポンスとしては正常な200ステータスとなっているが、異様に時間が掛かっている場合がないかを確認することが出来ます。

f:id:acro-engineer:20180709075033p:plain:w800

さらに、Tracesの詳細を見ることでクライアント呼び出しからレスポンスまでの流れをタイムラインで見ることが出来ます。
上記で異様に時間が掛かっている場合の原因が、DynamoDBの呼び出しで時間が掛かっているのかそれ以外なのかをこれで調査することが出来ます。

f:id:acro-engineer:20180709075836p:plain:w800

実際に、Lambdaのレスポンスが異常に遅いことが発覚し調査を行った際、Tracesの詳細を見ることでDynamoDBの呼び出しに時間が掛かっていることが分かったことがありました。
その時の原因としては、あるDynamoDBのテーブルがいろんなところから呼び出されており、設定していたスループットを超過して制限が掛かっていたことが判明しました。
こういったこともX-Rayを見れば簡単に調査することが魅力的ですね。

まとめ

どうでしたでしょうか。
今回みたいに簡単な準備と実装だけでAWS X-Rayを適用することができ、AWSのさまざまなサービスの連携をトレースできます。
特にAWS SNSなどはCloudWatchでトレースするとなると、呼び出しが失敗したのか、トリガーが失敗したのかなどをそれぞれログを確認することになるため大変です。
それをAWS X-Rayを使えばちょっとの実装だけでひと目で確認できるようになります。

また、Lambdaで所要時間が異様に時間が掛かっているがその原因がどこにあるのかをCloudWatchで見ようとすると、各ログの時間を調査していく必要がありますが、
詳細なトレース結果を見ることでX-Rayで簡単に突き止めることが出来るようにもなります。

CloudWatchでのトレースで苦労した経験ある方はぜひAWS X-Rayを適用してみてください。
それでは。

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
モノリシックなアプリケーションをマイクロサービス化したいエンジニア募集! - Acroquest Technology株式会社のWeb エンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

JJUGナイトセミナーで「はじめてのElasticsearchクラスタ」を発表しました

こんにちは、@です。

昨日、JJUGナイトセミナー「Elasticsearch特集」が開催されました。
jjug.doorkeeper.jp

この会で「はじめてのElasticsearchクラスタ」 と題したセッションを発表しました。

www.slideshare.net

Elasticsearchはカジュアルに動かせるのですが、本番運用でのトラブルをいくつか目撃してきました。
原因を確認してみると、設計すべき点が実施されておらず、本番運用に入っていた件が見受けられます。
特に、分散システム特有の「設計すべき点」もあり、慣れていないと気づかないこともあります。

そこで、次の2点についてセッションで発表しました。

  • 分散システムの視点から見たElasticsearchクラスタの仕組み
  • 安全なクラスタにするために本番運用前にやっておくべきこと

分散システムに慣れていないと難しい内容もあったかと思いますが、Elasticsearchを動かした事がある方や、これから本番運用を迎える方に喜んで頂けたようで、何よりでした。
懇親会では、様々な方からフィードバックを頂きました。ありがとうございます。
今後もElasticsearchに役立つ情報をアウトプットしていこうと思います。

また、GPTW「働きがいのある会社」ランキング1位、に興味を持たれた方もいらっしゃったのは嬉しかったです。
オープンでフラットな働きやすい会社ですので、気になる方はぜひ以下のページを訪問してみてください😊

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

データ分析基盤Elasticsearchを使い倒したいエンジニア募集! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

第23回 Elasticsearch勉強会で発表して来ました

こんにちは。
Elastic Certified Engineerになりました、@です😊
第23回 Elasticsearch勉強会で発表して来たので、内容をまとめました。

コンテンツ

  1. What's new in Elastic Stack 6.3 + Demo / 大谷さん & 大輪さん @ Elastic
  2. Elasticsearch SQLで何ができるか整理してみた / Acroquest Technology 樋口 慎 ← 私です
  3. Elasticsearchに関連する最新ネット情報を収集する方法 / NTTテクノクロス 山下 城司さん

What's new in Elastic Stack 6.3 + Demo

Elasticsearch社の大谷さん&大輪さんによるセッション。
6.3の新機能を色々と紹介してくれました。

6.3はIndex Managementをはじめ、Kibanaのクエリバー補完やRollup APIなど、開発/運用を効率化する機能が強化されているのですが、
このセッションでは、特にIndex Managementを詳しくデモで解説してくれました。
Kibanaの画面からIndexのOpen/Closeやパラメータの変更ができるのは本当に便利です。

デモの中で紹介されたRegionMapに関しては、大輪さんによるこちらのブログでも紹介されています。
日本の都道府県区域に応じたRegionMapを作成する | Elastic

Elasticsearch SQLで何ができるか整理してみた

6.3で導入されたSQL機能について整理しました。
CLIやRESTのエンドポイント、JDBCなどが提供されます。
詳細は下記のslideshareに上げましたのでご覧ください。

www.slideshare.net

今はまだ基本的なSQLのみのサポートですが、
これからODBCが提供されたり、機能拡充していくと思われます。
今後の動きが楽しみですね😊

Elasticsearchに関連する最新ネット情報を収集する方法

NTTテクノクロスの山下さんによる発表。
世の中に分散しているElasticsearch関連の情報を集約するブログ、
elasticlover.hatenablog.jp
を執筆している方です。

Elasticsearchの最新情報は公式BlogやQiitaなどの技術ブログ、Discussやissueなど、
様々な箇所に分散しているため、複数のチャネルを追い続けるのはそれなりに労力がかかります。
それをいかにして、Elasticloverに集約しているか、というお話でした。
(当ブログも拾っていただいています。ありがたい限りです。)

こちらに関してもスライドが公開されていますので、詳細は下記をご覧ください。
Elasticsearchに関連する最新ネット情報を収集する方法 / How to collect latest web information related to elasticsearch - Speaker Deck


まとめ

各セッションの概要についてまとめました。
今後のElasticsearch勉強会にも積極的に参加して、情報交換等していきたいです。
簡単な紹介でしたが、以上となります。お読みいただきありがとうございました😇

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

データ分析基盤Elasticsearchを使い倒したいエンジニア募集! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

CVPR2018 5日目:ニューラルネットワークを効率的に動かすためのワークショップに参加しました

皆さんこんにちは。@です。
遂にCVPRも最終日になりました。

※CVPR2018の4日目の記事はこちらです。
acro-engineer.hatenablog.com

本日参加したのは、「Efficient Deep Learning for Computer Vision」のWorkshopです。

Efficient Deep Learning for Computer Vision

Workshopの概要は次のサイトに掲載されています。
ECV2018

従来の研究では、精度が第一で、他の速度やがおざなりになっていたようです。
現在は、モバイルによる活用が増えており、近年、ニューラルネットワークの効率化の研究が進んでいます。

講演

問題意識として共通しているのは、エッジデバイスで利用するには現状の画像認識技術では難しいといったことです。
様々な研究の成果により、画像認識の精度が非常に上がってきています。
ところが、デバイス・エッジに載せるためには現状の精度の高いニューラルネットワークモデルでは実行時間が遅いです。
かつ、デバイスにダウンロードもできない程度にファイルサイズが大きくなっています。(iphoneダウンロードできないらしい)
そのため、精度をある程度保ったまま、モデルの軽量化や高速化が求められてきています。

f:id:acro-engineer:20180623115827j:plain:h250

Workshop中にニューラルネットワークの最適化の方法、新しいニューラルネットワーク(SqueezeNext)の提案やArchitecture Searchにより高速なニューラルネットワークを自動作成する例がありました。

f:id:acro-engineer:20180623120120j:plain:h250

人間の人力のアーキテクチャ最適化よりは、機械による最適化のほうが短時間で望ましい結果が出ていました。
実利用の際に最適化が必要になる局面が出てくると思うのでいくつかの技術で実現したいです。

パネル&ディスカッション

様々な講演の最後にパネル&パネルディスカッションがありました。
これまでは、モバイルを対象にしていましたが、最後はオフライン(クラウドなど)のTrainingに関してのパネルです。
近年では、非常に多くのデータが上がってくるようになり、オフラインでの学習のスケール・高速化が重要になってきています。

これに関して、5人のパネラーがそれぞれの立場で説明をされていました。
TPUやクラウド上でのプラットフォームの提供、GPU、HPCなど様々な分野の立場からアーキテクチャや高速化の工夫の説明がありました。後にディスカッションがあり、ベンチマークやバッチサイズの話など様々な話をされていました。あとで復習したいと思います。

f:id:acro-engineer:20180623121517j:plain:h250

最後に

ICMR, CVPRと長きに渡り、レポートを書いてきました。
直接カンファレンスに参加するのははじめてですが、現地に行ったからこそ良かった点がありました。
また機会があれば行ってみようと思います!

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

www.wantedly.com

CVPR2018 4日目:本会議も遂に終了! #cvpr2018

こんにちは。@です。
CVPRも4日目となり、遂に後半戦になりました。本日は本会議の3日目です。

※CVPR3日目のレポートは次の通りです。
acro-engineer.hatenablog.com

本日は次のセッションに参加しました。

  1. Oral Scene Understanding Ⅳ
  2. Oral Scene Understanding Ⅴ
  3. Oral Machine Learning for Computer Vision

Oral Scene Understanding Ⅳ

Long Talkで普段Kaggleでお世話になっているニューラルネットワークSENetの原論文の紹介がありました。
従来までのローカルな特徴のみならず、大域的な特徴を反映したかったのが、Squeeze処理とExcitation処理に反映されています。
Squeezeで大域的な特徴を反映し、Excitation処理で重みをつけ、各チャネルごとに大域的な特徴を反映しています。

f:id:acro-engineer:20180622115429j:plain:h250

その次の発表に有った「EncNet」のアイデアもSENetにインスパイアされており、Semantic Segmentationで成果を上げていました。
Semantic Segmentationを実行する機会があれば、試してみたいと思います。

f:id:acro-engineer:20180622115547j:plain:h250

Oral Scene Understanding Ⅴ

今回はOralで、Person Re-Identificationの論文が紹介されていました。
Person Re-Identificationの論文、今回非常に多くのポスターで見かけています。

従来までのpair-wise loss, triplet lossで得られた結果では、実際には近い位置関係に存在しないケース(=大域的には遠い)データがりました。
そのため、local similarityとgroup similarity(CRF)を定義し、計算し、SoTAを実現しています。
朝方のポスターで少し見てきたPerson Re-Identification論文も大域的特徴と局所特徴を組み合わせていました。
これからは大域的特徴と局所特徴を組み合わせつつ、精度が改善されていく提案が多いのではと思います。

f:id:acro-engineer:20180622115346j:plain:h250

Oral Machine Learning for Computer Vision

Adversarial ExampleやFeature Data Augmentationなどの論文の発表がありました。
そのうち、「Detail-Preserving Pooling in Deep Networks」では新しいPoolingの手法が提案されています。
通常のPooling(Down Sampling)では詳細情報がかけますが、この手法を使えば詳細な情報を残しつつPoolingができるとのこと。
既存手法(ResNetなど)に適用した場合に本提案手法のほうが精度が高いです。詳しいところは論文も読みつつ復習してみようと思います。

f:id:acro-engineer:20180622115259j:plain:h250

最後に

本日で本会議は最後になります。
明日は最後日でWorkshop、並びに、Tutorialがあります!
最後の最後まで楽しんできます!

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

www.wantedly.com