技術をかじる猫

適当に気になった技術や言語を流すブログ。

機械学習と深層学習という本を読みつつ...2

とりあえず第一章を読んだところでの自分の理解。
一応オライリー先生の機械学習本を半分位読んだ前提で…。

基本的な分類として、教師あり学習教師なし学習の二つが基礎としてある。
教師あり学習は教師データを事前に準備することで、学習機にそのパターンを覚えこませる手法。

教師あり学習。このケースで教育した AI はモノや状況の認識を行う。
画像や音声を認識するのはこうした AI。

教師なし学習はおよそ二種類の分岐があり

アルゴリズムによる分類は、クラスタリング等の様に類似したグループにデータを分類するだけで、その分類に名前や意味を与えるのは人間の仕事です。
もう一つの強化学習は、最終目的(結果)から見てその仮説が正しかったと理解を蓄積する学習型です。

クラスタリング等の分類技術は、例えば遺伝子操作の過程で有効な遺伝子を探すために、とりあえず分類を使ってみるとか、商品販売であれば購入顧客の傾向を分類するなどの使い方があります。
どちらかといえば研究向けでしょう。

結果からの学習、これは強化学習に分類します。
例えば将棋やオセロの AI 学習なんかに使います。例としては、一通りの手順で盤を進めて、勝ったらその手順にスコアを割り振る、負けたら手順のスコアを下げる。
そうして評価値を構築するなんて使い方ができます。

機械学習と深層学習という本を読みつつ

github.com

機械学習の基礎とあって、単純ではある。

帰納学習、複数の事象からそのパターンを抽出する学習のことで、今回の方法はその基礎だそうだ。
逆の言い方をすればパターンを見つけるための学習ともいえる。

このケースではランダムで認識パターンを作成、パターンに対して学習データを与えて正答率が良ければ残す。
そんなループを繰り返すことで、精度を上げていくというアルゴリズム

ただ、学習効率のいいものかといえば微妙なパターンではある。
元のコードがあまりにも一筆書き過ぎてもやっとしたので少し変えた。

TestManagementTool探してみた

というのも、テストを管理するのに Excel とか全力でやだ、見づらい、メンテしにくい、同時に更新ですさまじく問題が出る。
ついでにテストの状況をいちいちファイルサーバまで行って開かないと確認できないクソっぷり。

で、老舗で TestLink を久々に弄ってみたのだが、これがやはり死ぬほど使いづらい。

というか UI や言葉の選び方がダメなせいで、ユーザビリティが悪すぎた。
つまり何が言いたいかというと、導入するにあたって学習コストが高すぎる。
その意味で使いたくない

という事で、ほかの使えそうなものを調べてみた。

ざっくり

  • SquahTM
  • TestRail

辺りが人気らしい。

リンクと共にメモだけ。

あとよさげなリンク

モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし - Mercari Engineering Blog

妥当なセンは TestRail か。
UI を見る限り、TestLink より絶対使いやすい。

TestLink を弄ってみる

  1. 適当に C:\workspace\projects\docker\testlink この辺にディレクトリを掘る
  2. そこに mariadb_data, testlink_data ディレクトリを掘る
  3. docker-compose.yml を作成して後述を記述
  4. docker-compose up -d で起動(ただし完了までそこそこ時間がかかる)
version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - 'C:\workspace\projects\docker\testlink\mariadb_data:/bitnami'
  testlink:
    image: 'bitnami/testlink:latest'
    environment:
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - 'C:\workspace\projects\docker\testlink\testlink_data:/bitnami'
    depends_on:
      - mariadb

因みに、ここで嵌ったのが、ノートン先生の問題。
どうもこのノートン先生はDockerコンテナ同士の通信を阻害するものらしい。

そのため、以下の設定を行った。

gfonius.net

確かにこれで、コンテナの起動に失敗することは無くなったのだが、起動中に php のインストールで停止するらしい。
apache のインストールまでは行ってるので、通信内容を見て勝手に遮断してるのかも知れないが、結局わからなかった。

結論から言うと、Windows やっぱ OSS やるのにうんごですわ…

Docker CLI で unauthorized: incorrect username or password で無駄に嵌ったのでメモ

Windows で Docker 入れると、Htper-V なんて他の共存を拒むクソアプリを入れざるを得なくなるので、Ubuntu16 のDualBootにしていたのだが、どうも DELL の XPS15 9560 と相性がよくないらしい。

  • ログイン時に固まる→コンソールで起動して、Nvidia ドライバ入れれば解決。
  • New アップデート後に Sleep → キー入力(多分Enterキー)が暴走して、ログイン不能に。

なんてクソッタレな状況に陥ったので、もういい加減切れて Ubuntu を削除。
VirtualBox すら諦めて(F○ck!!!!)Windows10 で開発しようと、Docker をインストールする。

そして、無事入ったと思ったら、まともにコンテナが起動しなかったので、対処も踏まえてメモ。

起こったこと

Docker イメージのダウンロード中に以下のエラーで止まる。

incorrect username or password.

一応、GUI上ではすべてログインしているように見える。
フォーラムを眺めたところ、コンソールは別にログインしなければならないらしいことが分かった。

コマンドラインでログインしかし罠だった

で、コマンドラインからログイン(dockerhub のログインに使用しているメアドでログイン)しようとして以下のエラー。

C:\workspace\projects\docker\redmine-jenkins-testlink>docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (XXXXXXXX@gmail.com):XXXXXXXX@gmail.com
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password

Dockerhub のログイン画面で DockerID と書かれているものと全く同じものを入力してコレである。

f:id:white-azalea:20180715192653p:plain

再びフォーラムを検索してみたところ、「メールアドレスを使うんじゃない」 と言っている。

ハァ( ゚Д゚)ハァ?

結局

ログイン後に表示されるアカウントIDを入れたらログインできたという…

C:\workspace\projects\docker\redmine-jenkins-testlink>docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (XXXXXXX@gmail.com): xxxxxxxx
Password:
Login Succeeded

これは Dockerhub でログインした後の以下の部分

f:id:white-azalea:20180715193225p:plain

なんか本質以外でハメられると色々損した気分になる…

UEFI でデュアルブート設定した Ubuntu を削除する

といってもメモだが…
手順はこんな感じ。

qiita.com

cmd.exe を管理者権限で起動して操作します。
因みに、自分の環境(XPS15)だと list disk に反応はなく、list volume で参照したら存在した。
まぁ、1ディスクで二つ入ってるからなぁ

C:\Windows\system32>diskpart

Microsoft DiskPart バージョン 10.0.16299.15

Copyright (C) Microsoft Corporation.
コンピューター: DESKTOP-OFE415F

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    476 GB  正常         ブート
  Volume 1         回復           NTFS   Partition    499 MB  正常         非表示
  Volume 2                      FAT32  Partition    100 MB  正常         システム

DISKPART> sel volume=2

ボリューム 2 が選択されました。

DISKPART> assign letter=d:

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

あとはリンク先と変わりません。

あとは管理ツールから Linux パーティションを消して Windows 領域に統合すればおしまいです。

XPS15 に Ubuntu16.4 入れたはいいけど…

あれやこれの問題が起きたのでメモ

インストール

基本的にはここに書いてあるとおり。

qiita.com

なのだけど、ここには注記がある。

日本語プロジェクトから Ubuntu image を落として使ってはいけない という点。

何が起きるかというと、2018/04/08 時点では、Ubuntu のバージョンが若干古く、しかも「Wifi にバグを抱えたバージョン」であるようで、無線 LAN が息をせずに文鎮になりかけた。
英語 本家から落としてインストールすることで、これは事なきを得た。

起動したはいいがファンがうるさい

何が起きてたかというと、搭載の nvidia geforce 1050 が暴走でもしてるのかと思うくらい動きまわってた。
軽く探しまわってみたところ、どうにも Windows にだけ最適化してて、Ubuntu では微妙…とのこと。

そんなもんメインでぶん回せはうるさくなるのは当たり前だろう…ということで、眠らせる方法を探した。

$ prime-select query

というコマンドがあわかり、引数で query: 現在メイン稼働の GPU 表示。 intel: IntelGPU をメイン使用設定。nvidia: Geforce をメイン使用設定。ができることがわかった。 これで少しファンの音が小さくなった。

追記:やったら再起動後不安定になったという…普通に Htper-Vで入れた方がいい気がする