エーシーのブログ

備忘録中心の自己ブログ

AIの品質保証について

■内容

昨今、AI技術を導入した製品が開発されていく中でふと疑問に思ったことがある。
それは
AI製品はどのようにして品質保証するのか?
ということ。

一体どのような問題があり、どのように解決していっているのか調べていく。

■AIの問題点とは

■品質保証の取り組みについて

monoist.atmarkit.co.jp

上記サイトからの引用

QA4AIコンソーシアムの当面の目的は、製造業に求められるAI活用製品の品質保証の相場観を確認し、その相場観を基にガイドラインを作成し公開することだ。将来的には、ガイドラインを基にした国際標準化も視野に入れている。

AI、品質管理に関する有識者ガイドラインを作って国際標準化を目指すということのようです。
月次単位(一部項目は年次単位)でQA4AIコンソーシアムのサイトで活動内容を更新するので確認していこうと思います。

■現時点でのAI品質保証

現時点で開発している人達はどんな工夫をして品質保証をしているのか。適時確認していく

LINE利用時に「LINEサーバーが送ってないデータが受信されました。使用中の通信サービス、ネットワーク環境、プロキシサーバーなどによって、LINEサーバーが送ったデータがブロックまたは変更された可能性があります」と表示されて参照できない

■事象

LINEのグループで画像を共有しようとしたが、あるメンバで画像が受信できず以下のような警告メッセージが表示される。
「LINEサーバーが送ってないデータが受信されました。使用中の通信サービス、ネットワーク環境、プロキシサーバーなどによって、LINEサーバーが送ったデータがブロックまたは変更された可能性があります」

■メンバへの聞き取り

▼再現率は?

ある時から再現率が100%になった。

 

▼ある時とは?

①友人の設定変更を機に事象が発生。
②自宅の回線がNTTひかり→ケーブルテレビ局

▼①友人の設定変更を機に事象が発生

・変更内容
 絵文字の設定変更をしたらしい
 →本件との関係はないと判断。

 →別の設定変更をした可能性もあり。

 

・設定変更の場所は?(回線の切り分け)
 →外出先で変更したとのこと。
 →「②自宅のネットワークの業者がNTT→ケーブルテレビ局」は関係ない。
 →問題が発生している状況でスマホ画面上部にLTEという文字が表示されていると後から聞き、問題はキャリア回線であると断定

 

■原因

上記聞き取り内容から「キャリア回線」の何らかの設定が起因しているはず。(絵文字だけでなく、別設定も変更した疑いあり)
インターネットで調べてみたところ、同事象を説明しているサイトは少なかったが、以下のブログから「キャリアのフィルタリング設定」と推測。

 

▼参考サイト(貴重な情報ありがとうございます)
http://did2memo.net/2015/12/31/naver-line-invalid-data-error/

 

■結果

メンバに「キャリアのフィルタリング設定の確認」を依頼し、回答待ち。

 →設定がわからなければキャリアのショップに行って事象説明をしてほしいともお願い。

 

【後日】

メンバからDocomoショップにて店員さんに事情を説明後、キャリア設定を変更してもらい事象は改善されたとの報告を受けた。

→詳しい説明はなかったとのことだが、キャリアの設定であることは間違いないとのこと。

 

今回、直接端末操作できずメールでの確認となったが解決に至った(本当は触って自分で解決したかったけど) 

設定方法がわからない場合はキャリアの店舗に行って相談してみたほうが早いかもしれない。

 

Windows10でネットワークにつながらなくなった件

知り合いのPCがネットワークにつながらなくなったということで、調査

 

■接続状況を確認

まずは「ネットワークと共有センター」で接続状態を確認。

あれ??無線LANは認識しているのにつながっていない??

 

■エラー原因を確認

とりあえず「Windowsネットワーク診断」を実行する。

すると、3つエラー原因と思わしき事象があり、その中で見たことのない「“ワイヤレスネットワーク接続”には有効なIP構成がありません」というメッセージが・・・。

これは何ぞ?と調べてみると・・・。

IPアドレスが192から始まっていない・・・。なんじゃこりゃーー!

 

■原因調査

いろいろと調べてみた結果、以下の対策があるらしい

1.ドライバ削除→再インストール

    →直らない;-;

2.ルーター設定の初期化

    →直らない(まぁ、Myマシンが接続できていたので可能性は薄いと思いましたが)

3.Shift押下+シャットダウンで完全シャットダウン

    →直った!!

ということで、完全シャットダウンという聞いたことのない手法で回復

 

■なんで直ったの?

どうやらWindow10で2016/12/6あたりから発生していた事象らしく、完全シャットダウンしないとドライバ更新されなかったことで原因らしい。

windows8以降のOSでは、通常のシャットダウンでは「その後に高速で起動できるように一部をスタンバイ状態にしている「高速スタートアップ機能」はデフォルトで有効になっている」とのこと。

知らなかった・・・・。

 

今回参考にさせていただいた中でドンピシャの回答を記載していたのが以下です。

ありがとうございました!

digital-nandemoya.com

C++とVisual C++の違い

「俺はC++はできるんだけど、VC++はできないんだよなぁ」

という話が聞こえてきて、C++プログラミング言語で、VC++コンパイラを含めた統合開発環境(IDE)じゃないのか?

とふと疑問に思い、調べてみた。

 

結果、認識に誤りはなかった。おそらくVC++ができないって言っていたのはIDEの使い方がわからないか、VC++のライブラリを知らない。ということなんだろうと解釈。

自分も誤ったことを口にしてしまうので気を付けないといけないなぁ・・・・・。

 

●参考ページ

Microsoft Visual C++ - Wikipedia

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12113310497

コールグラフを作成する。

関数の呼び出し関係をコールグラフを用いて明確にしなければならない。

という話が出たのだが、ツールで作成できるのか?そのツールは使用言語に対応しているのか?ということをざっくり調べてみた。

コールグラフ - Wikipedia

 

コールグラフには以下の2種類があるが、私の認識は以下のとおり。(誤っている可能性大)

動的(実際にプログラムを動作させて通ったルートのコールグラフを生成)

 →実結果を用いるため正確ではあるが、全ルートが網羅できない可能性がある?

静的(ソース解析を行って解析結果からコールグラフを生成)

 →正確ではないが、網羅性が高い??

 

動的コールグラフは動作させないと作成できないため、動作環境がなければならない。今回は動作環境が用意できなかったので、静的コールグラフの作成ツールについて追ってみる。

 

   コールグラフを描く2つのツール(EgyptとCodeViz) | 配電盤

          Java:Eclipseでコールグラフ(2)ispaceでコールグラフを作成

   

  

   

officeリボンを動的に無効にする方法

officeリボンのボタンを押下した直後に、そのボタンを無効にしたい。

しかし、windowsフォームとは異なり、ボタンのイベント終了後でないと無効にならない。(多重実行防止のため)

 

以下のサイトによればリボンXMLにコールバック関数を埋め込めばいいらしい。

VBAの例だが、vb.netでもいけるかどうか試してみよう。

http://www.ka-net.org/blog/?p=2833

 

# Enabledプロパティをfalse状態と同じように無効のように見せるのはOfficeリボンは困難であるため、ボタン押下イベントが発生した際に自分で抑止するのが容易であった。

理想論でいえば、「動的に変更する」のが一番かもしれませんが費用対効果が悪いので・・・。

 

visual studio 2010でプロジェクトが作成できない。

●問題点
visual studio 2010で例外発生し、新規プロジェクトが作成できない。
また、既存のプロジェクトはプロジェクトファイルが参照できない。

 

●壊れたプロジェクト
壊れた参照のトラブルシューティングを閲覧してみたが、
全プロジェクトで問題が発生することからこれが理由である可能性は低い。

http://msdn.microsoft.com/ja-jp/library/ayds71se.aspx

 

●Guidance Automation Extensionsが原因?
下記が原因で新しいプロジェクトが作成できなくなる可能性もあるらしい。
http://d.hatena.ne.jp/fyts/20080215/vs2008

 

●プロジェクトがアンロードされていた可能性?
下記で対処可能のようだが、駄目そう。
http://msdn.microsoft.com/ja-jp/library/vstudio/tt479x1t(v=vs.100).aspx