Deep Learningの手法

◎【学習途中勾配消失問題の解消・・・活性化関数

1.tanh関数

2.ReLu関数

  -Leaky ReLU・・・x<0でわずかな傾き

  -Parametric ReLU・・・x<0の傾きを学習で最適化

  -Randomized ReLU・・・x<0の傾きをランダムの試す

 

◎【学習途中鞍点問題の解消・・・学習率の最適化

1.勾配降下法

2.勾配降下法の問題点と改善

  -[問題点1]「見せかけの最適解」であるかどうかを見抜くことが出来ない

  -[改善]学習率の値の大きさを動的に変化させる

  -[問題点2]3次元以上の鞍点(プラトー

  -[改善]モーメンタム、Adagrad、Adadelta、RMSprop、Adam

    *注)鞍点とは・・・ある次元では極小、別の次元では極大

 

◎【学習途中】オーバーフィッティングの解消

ドロップアウト・・・ランダムにノード(ニューロン出力=0)を削除

・ドロップコネクト・・・ランダムにエッジ(重み=0)を削除

  -乱数の与え方難しい

・early stooping・・・オーバーフィッティング直前に学習打ち切り

・汎化性能:ドロップコネクト > ドロップアウト

 

◎【学習初期】データの処理

入力データへのアプローチ:白色化>標準化>正規化

  -正規化:特徴量を0~1の範囲に変換

      一番原点に近い点を原点に移に

  -標準化:特徴量を標準正規分布に変換

  -白色化:

  【欠点1】入力データが正規化されても、層の伝搬につれ分布が徐々に崩れる。

  【欠点2】データに偏りが発生すると勾配消失問題が発生

重みの初期値へのアプローチ:重みの初期値を工夫

  -シグモイド関数Xavierの初期値

  -ReLu関数:Heの初期値

中間層のデータへのアプローチ:バッチ正規化(batch normalization)

  -20層以上はバッチ正規化を使わないと収束しない

◎その他

・勾配消失問題とは

  1. バックプロパゲーションにおいて誤差は逆向きに伝搬
  2. 数式上は活性化関数の微分項を含む
  3. ニューラルネットワークの活性化関数のシグモイド関数微分項は最大値0.25
  4. 隠れ層を遡るごとに微分項が掛け合わされ伝搬する誤差は小さくなる

参考文献

ディープラーニング 谷田部卓著 創元社

ディープラーニングG検定公式テキスト 翔泳社

UiPath Orchestrator コース

レーニング環境の準備

UiPath Orchestratorを実際に使用、インストール

 

商用製品と無償製品の違い

UiPath RPA Platform無料評価版 Studio&Cloud | UiPath

 

Orchestratorの概要

◎UiPath Orchestratorとは

・ロボットによるジョブの実行・リモート実行・監視・スケジューリング・

 ログ管理等 ロボットの一元管理が可能な、RPA 管理ツール

・オンプレミスだけでなく、ユーザーのクラウド・UiPath のクラウド他複数

 

◎UiPath Orchestrator主要機能

・プロセスの管理
・プロセスの処理状況の監視
・ロボットのパフォーマンス&稼働状態の把握
・資格情報管理
・複数のデバイスに対する、リモートでのプロセス実行
・ライセンス管理

 

◎ロボットの種類 

・Attended ロボット・・・非Orchestratorロボ

  ー人間からのインプットや意思決定を必要とするケース

   処理実行のタイミングが日々違い、定期的な実行スケジュールを設定できない場合

*注)UiPath Orchestrator からプロセス開始不可
     プロセスの実行中は人間による監視要

・Unattended ロボット・・・Orchestratorロボ

  ー人間の介入を必要としない

(スケジュール実行)

・自動で繰り返し行われ、ルールに基づいた処理

・その他のロボット

Development

NonProduction

 

ロボットの管理

「どのコンピュータ」「どのユーザー」で実行するかを、Orchestrator上で「マシン」や「ロボット」で定義・管理すべし

 

 ◎マシン・・・ロボットを動作させるPC

・ロボットが自動化処理を実行するコンピューター:「マシン」

・Orchestrator にて、マシンを定義すること:「マシンのプロビジョン」

・「マシンのプロビジョン」によりOrchestratorから「マシンキー」が生成

◎マシンの種類

・標準マシン・・・端末のコンピューター名を使用して定義

・マシン テンプレート・・・任意の名前で定義。フローティングロボットで共通使用するマシンキーが生成。

 

◎ロボット

Orchestrator では、その UiPath Robot にプロセスの実行指示を行うために、どのコンピューターのどのユーザーで実行するかを、マシンとユーザー情報を組み合わせて、「ロボット」として定義・管理

・標準ロボット (Standard Robot)

   単一のマシン上、ユーザーが常に同一

・フローティングロボット (Floating Robot)

   サーバー上で動作、仮想デスクトップ

*注意)UiPath Robot がインストールされているマシン:「ロボット端末」

ジョブの実行のための設定:概要

ジョブの実行を Orchestrator から行うためには、大きく分けて 2 つの作業を行います

1「 Orchestrator と UiPath Robot の接続」

・マシンのプロビジョン・・・[PC名]を Orchestrator に登録  
・ロボットの作成・・・[ロボット名]を Orchestrator に登録

   ー[ロボット名]と[PC名][ユーザー名]を紐づけ
・ロボット端末上での接続設定・・・ OrchestratorとPCを接続

        ーUiPath Robot との接続に使用する「マシンキー」を生成

          *注)接続には、ロボット端末のローカル管理者のユーザー名・パスワードが必要

   *注)provision  供給、支給、準備
2 「プロセスのデプロイ」

・Studio よりプロジェクトをパブリッシュ、パッケージとしてアップロード

  -パブリッシュ先をOrchestratorとする

    -パブリッシュされたプロセスをOrchestrator側で確認
・ロボットグループの作成
・ロボットグループとパッケージを紐づけ (プロセスのデプロイ)

    *注)プロセスを改修したら都度orchestrator側でアップデートすること忘れない

◎ジョブの実行方法

・Orchestrator 実行:[ジョブ (Jobs)] ページからの実行

・Orchestrator 実行:スケジュール機能実行

・手動実行:ロボット端末のロボットトレイからの手動実行

 

◎パッケージのバージョン管理

・アップデート可能

ロールバックも可能

 

◎アセットの活用方法

・アセットの活用方法:ロボットごとのアセット値設定

・アセットの活用方法:資格情報管理

  ーシステムログイン時に必要なユーザー名やパスワードなどCredential 型のアセットを

   作成することで、安全に資格情報を管理・利用

   ロボットごとのアセット値を利用することで、複数のロボットの資格情報を一元管理

 

*注)暗号化されたパスワードを復号化して入力する場合は、 [SecureStringで文字を入力 (Type Secure Text)] を使用

 

◎キューの活用方法

キュー:処理データを格納するコンテナ
キュー アイテム:Excel の 1 行分のデータが 1 つの処理単位

トランザクション :  キューにある 1 処理単位のデータ (キューアイテム) を処理する
トランザクション アイテム :  トランザクションで処理されたデータ

 

・キューを使用する際に利用するアクティビティ

・キューの追加 (作成) 方法

1. キューアイテムの追加 (「ディスパッチャー」の作成) 

2. トランザクションアイテムの取得 (「パフォーマー」の作成)

 

◎Orchestrator でのキューの管理

Kaggle

◎Kaggle講座

https://www.kaggle.com/learn/overview

 

◎Kaggleで用意するもの

・インターネット回線のみ

・「ノートブック」で解析用プログラムをKaggleのプラットフォームで実行可能

 

◎Kaggleの活用例

・データ解析用インフラとして利用

 ー公開セットの活用

 ーノートブック

    無料 実行時間30時間/週

    通常CPU:4コアCPU・16Gメモリ相当

    GPU搭載サーバー:2コアCPU+GPU・12Gメモリ相当

 ー開発環境のセットアップ不要/メンテナンス不要/最新バージョンライブラリ

・企業研修に利用

 ーハンズオン可能

・専門家への質問

Kaggleに関する一般的な話題

 Kaggle Forum | Data Science and Machine Learning

Kaggle初心者向けの話題

Getting Started | Data Science and Machine Learning | Kaggle

Kaggleの機能やバグなどについて

Getting Started | Data Science and Machine Learning | Kaggle

一般的な質問と回答

 

◎いろいろなコンペ

・勉強用のサンドボックス

・季節定例となっているコンペ

  -「Travelling Santa」

  -「NCAA」コンペ

  -これからも定例になりそうなコンペ

    「ImageNet」

    Google「Open Images」

・特殊なデータを扱うコンペ

  -暗号文の解読コンペ

  ー物理学のデータを使うコンペ

・特殊なルールに基づくコンペ

  ープレゼンテーションで競うコンペ

  ー画像生成コンペ

    GAN?

◎Kaggleのランキングシステム

Novice,Contributor,Expert,Master

 

  

 

 

 

 

 

 

 

 

REFramework概論コース

◎目標

・プロジェクト構成方法の基本的な概念

・ステートマシンの仕組み

トランザクション処理の概念

・UiPath Robotic Enterprise Framework (REFramework) の構造と組み込まれている機能

 

◎ワークフロー開発の4つのポイント

・「信頼性」・「効率性」・「保守性」・「拡張性」 

・REFramework :4つのポイントをカバーするワークフロー開発テンプレート

 

◎「信頼性」

・安定して動作するワークフロー

・安全性の高いワークフロー

  ーパスワードのハードコーディングを避ける

  ーメールの自動化による誤送信を防ぐ

  ー不特定多数から送信されたメールに対する処理の自動化

 

◎「効率性」

 ・プロセスを操作単位ごとに分割

・開発・テスト時間の短縮

・可読性が高いワークフローの開発

  ーワークフローの階層が浅く

 

◎「保守性」

・他の担当者がわかりやすい

継続した保守を行いやすい

 

◎「拡張性

UiPath Robot の台数を調節するのみで
 拡張できるワークフロー開発

新規プロセスを追加しやすい構成

 

3 つの主要な処理方法

・直線処理

・反復処理・・・このやり方ダメ

  単純なループ処理で実装すると 、ひとつのデータ処理中に問題が発生した場合、

  処理全体は中断され、他のデータは未処理のままになるという欠点があり

トランザクション処理・・・こっちでやる

 

トランザクション処理となりうる業務プロセス

 

◎ワークフローの最適なレイアウト選択

 

 

 

 

Deep Learningキーワード

なんかE検定対策みたいでいや!!

 

姉妹ブログ

https://qiita.com/Pen_Than_Sword/items/e2da1eb496cf38343dd1

 

ビジネスの世界でどれだけAI活用が進むか

https://www.mckinsey.com/featured-insights/artificial-intelligence/notes-from-the-ai-frontier-applications-and-value-of-deep-learning

 

◎ さまざまな分野と最先端の事例

・数値・表形式系

・画像/映像系

・文章/言語系

・音声/音楽系

・その他の応用

3つのカテゴリに分けて、見ていきます。

・認識/推論

・生成

・連続した行動

Papers With Code-Browse thd State of thd Art in Machine Learning

https://paperswithcode.com/sota

 

世界初の汎用コンピュータの誕生

1946年 アメリカ ペンシルバニア大学 エニアック(ENIAC)

 

◎人口知能という言葉の誕生

1956年 アメリカ ダートマス会議 マーヴィン・ミンスキー

                      ジョン・マッカーシー

                                                      アレン・ニューウェル

                                                      ハーバード・サイモン

 

◎人口知能研究のブームと冬の時代

■第1次AIブーム(推論・探索の時代:1950年代後半~1960年代)

■第2次AIブーム(知識の時代:1950年代後半~1960年代)

■第3次AIブーム(機械学習・特徴表現学習の時代:2010年代~)

 

◎【第1次AIブーム】推論・探索の課題

・迷路

ハノイの塔

・プランニング

 -ロボットの行動計画

 -積み木 1970年 SHRDLU スタンフォード大学 テリー・ウィノグラード

モンテカルロ法

 

◎【第2次AIブーム】知識表現の課題

人工無能 

    1964年~1966年 ELIZA

エキスパートシステム

   1960年代 DENDRAL スタンフォード大学 エドワード・ファイゲンバウム

   1970年代 MYCIN

・知識獲得のボトルネック

・意味ネットワーク

オントロジー

・概念間の関係

オントロジーの構築

 

ディープラーニングへの変遷

・1958年 単純パーセプトロン アメリカ フランク・ローゼンブラッド

・1969年 単純パーセプトロンの限界:線形分離問題しか解けない

・1986年 単純パーセプトロンの限界の克服:多層+バックプロパゲーション

・2006年 自己符号化器(オートエンコーダ) カナダ トロント大学 ジェフリー・ヒントン

・2012年 ディープラーニング カナダ トロント大学 ジェフリー・ヒントン

 

◎シンギュラリティ

・未来学者、実業家 レイ・カーツワイル

・2029年 「人工知能が人間よりも賢くなる」・広義の意味

2045年 人口知能が十分に賢くなり、自分自身よりも賢い人呼応知能を作るようになった瞬間、無限の

 

ディープラーニングのアプローチ ~勾配消失問題の解決方法~

1.事前学習によるアプローチ・・・old style。こちらはオワコンです。

  -オートエンコーダ

  -積層オートエンコーダ

  -ファインチューニング

  -深層信念ネットワーク(deep belief networks)

2.事前学習なしのアプローチ・・・こっちが主流

  -活性化関数の工夫

 ディープラーニングを実現するには

・ハードウェアの進歩

・CPUとGPU

  -CPU(Central Processing Unit):様々な種類のタスクを順番にこなす

  ーGPU(Graphics Processing Unit):大規模な並列演算処理、主に画像処理

   *注)CPU・・・Numpy、GPU・・・Cupy

・GPGPU(General-Purpose computing on GPU)

  -画像以外に改良

  -ディープラーニング向けのGPU開発・・・NVIDIA

  -ディープラーニング実装用のライブラリのほぼ全てがNVIDIA社製をサポート

・TPU(Tensor Processing Unit)

  -Google社製:テンソル計算処理に特化

ディープラーニングのデータ量

  -学習・・・モデルがもつパラメータの最適化

  -CNN・・・AlexNet

  ー問題が複雑であるほど、必要なデータ量も増える

  ーデータ量の目安:バーニーおじさんのルール「モデルのパラメータ数の10倍のデータ数が必要」

 

 

UiPath Studio開発 中級コース

 

◎UI上の入力操作

・3つの入力方法

[デフォルト (Default)] :何もチェック入れない

[シミュレート (Simulate)] :[クリックをシミュレート]にチェック

[ウィンドウメッセージを送信 (Send Window Messages)] 

 

・ [シミュレート (Simulate)] でテストを行い、その後必要に応じて、[ウィンドウメッセージ (Window Messages)]、[デフォルト (Default)]の順でテスト

https://docs.uipath.com/studio/lang-ja/docs/input-methods

 

◎エラーと例外処理

・「エラーの種類に応じたエラー処理に制御を移す仕組み」を例外処理

・エラーの対応方法としての「条件分岐」の活用

・例外処理で利用するアクティビティ

・アプリケーション例外とビジネス例外

 - アプリケーション例外:アプリフリーズ

 - ビジネス例外:人的ミス

 

◎トライキャッチによる例外処理

・[トライキャッチ (Try Catch)] の使い方

 - try:エラーが発生する可能性のあるアクティビティ、例外をスロー

 - catches:例外の種類に応じた例外発生時の処理

・[Try] ブロックの構成

 ー アクティビティが自動でスローする場合

 ー 例外を定義してスローする場合

・[スロー (Throw)] アクティビティを活用した 例外の作成とスロー

・[Catches] ブロックの構成

・[Finally] ブロックの構成

 

◎エラーの種類に応じたトライキャッチ の構成

・アクティビティが自動でスローする場合
・例外を定義してスローする場合
・ビジネス例外の場合

 

◎エラー発生状況の記録方法

・[スクリーンショットを撮る (Take Screenshot)] の活用

・[メッセージをログ (Log Message)] の活用

 

◎その他のエラー対応方法

・成功条件を満たすまで再試行する [リトライスコープ (Retry Scope)]
・エラーを発生させ処理を終了する [再スロー (Rethrow)]
・エラーを無視して次の処理を継続する  [エラー発生時に実行を継続 (ContinueOnError)]

 

デバッグ機能の活用

・エラーメッセージの確認 1

  -エラー発生場所:アクティビティの表示名を分かりやすくする

・エラーメッセージの確認 2

 -エラー発生内容

エラー発生時のスクリーンショットを確認する

・入力処理でのエラーの対処方法

  i.対象アプリケーションが表示されているか確認

       ii.入力方法を変更

       iii.適切なセレクターが使用されているか確認

・表示・ページ遷移のタイミングによるエラーの対処方法

    [原因]操作対象 UI 要素/対象ページの表示の遅れ、表示タイミングが影響して発生するエラー

    [対処1]アクティビティ実行の待機時間を調整したり、

   対象要素の有無を、[要素を探す (Find Element) ] 

                             [要素の有無を検出 (Element Exists) ] 

           [要素の消滅を待つ (Element Exists) ]

 

 

◎ワークフロー開発 4 つのポイント

「信頼性」・「効率性」・「保守性」・「拡張性」

 

◎ワークフロー開発のルール

推奨するルールや知識をまとめた「UiPath コーディング規約

ルール 1:ワークフローの最適なレイアウト選択

ルール 2:命名規則に従った変数名の変更

ルール 3:命名規則に従ったアクティビティ表示名の変更

ルール 4:[注釈 (Annotations)] にワークフローの処理内容を記載する

ルール 5:[注釈 (Annotations)] に変数名と変数の型を記載する

ルール 6:参考スクリーンショットは、分かりやすい画像を使用する

ルール 7:[フロー条件分岐 (Flow Decision)] の「TRUE」・「FALSE」を分かりやすいラベル名にする

ルール 8 :使用していない変数を削除する

 

◎ワークフロー開発のポイント

  • 効率的な開発のための最初の手順

  • 効率性、保守性の高いワークフローにするための、ワークフローの分割と呼び出し方法

  • 保守性の高いワークフローにするための、初期設定の実装・Configファイルの活用

安定性の高いワークフローにするための、例外処理の実装

 

◎効率的に開発を進めるための最初の手順

・業務プロセス全体をつかむために、処理の流れを可視化
・アプリケーション例外・ビジネス例外に対する処理の必要性の確認
・意味のある処理単位で分割し、ワークフローの大枠を作成

 

◎処理単位ごとにワークフローを分割・呼び出し方法と引数

・独立したワークフローファイルの作成方法

  ーワークフローファイルの新規追加方法

  ー[ワークフローを抽出 (Extract as Workflow)] の活用

・既存のワークフローを呼び出す方法

   -プロジェクトパネルからドラッグ&ドロップ

   -[ワークフローを呼び出し ] の活用

◎初期設定の実装と Config ファイルの活用

・ワークフローの保守性や効率性を高める

・Config ファイル読み込み.xaml の作成

  -excelファイルのデータをセットする辞書型メモリをnew

  -excelアプリケーションスコープでdatatableにセット

  -datatableをforeachで辞書型にセット

◎「初期設定」シーケンスの作成と Config ファイル読み込み.xaml の呼び出し

 *これは必要かどうか微妙かなぁ

・Config ファイル読み込み.xaml の呼び出し

・辞書型 => assign でメモリセット

 

◎例外処理の実装

[学習内容]安定性の高いワークフロー=>「例外処理の実装」

・「例外処理」実装のベストプラクティス

・アプリケーション例外:経費システム側の障害=>exception

ビジネス例外:「経費登録シート.xlsx 」の入力不備によるエラーが発生

                              =>

 

 

 

UiPath Studio開発 初級コース

このレッスンでは、UiPath プラットフォームの3つの主要製品概要と
UiPath でできることやその魅力について、動画を通して説明します

それぞれの特徴

自動化したいニーズにあったUiPath 製品を選びましょう

UiPath Studio のインストール方法
UiPath Studio の基本操作
UiPath Studio の拡張機能設定
◎UiPath Studio の名称と役割
・各パネル名の説明
・UiPath Studio のメイン画面の構成
◎アクティビティ
 ・パッケージのインストール方法
 ・パッケージ=アクティビティをグループ化したもの
 
 
・データテーブルを文字列に変換して出力する方法
・データテーブルを新規 Excel ファイルに出力する方法
既存データテーブルにデータを追加する方法
データテーブルの列を指定し、各行データを出力する方法
Select メソッドを使用し、条件に合致するデータを出力する方法
データテーブルのデータをフィルタリングで抽出する方法
読み込んだデータを加工・新規 Excel ブックへ保存する方法
 
・パターン化された構造のデータスクレイピング方法
・表形式データをデータスクレイピングする方法
 
セレクタ概要
 アクティビティでいきなり要素選択するのではなくUI Explorerの[要素を選択]で事前確認が良い
・UI Explorer と セレクターエディター
 メモ帳とカレンダーのデモ。
   セレクターエディターとUI Explorerの使い方
 (構成)要素:
 属性
 値:
  *注:要素=タグ(HTMLの場合)、[Ctrl]+[U]キー
 
◎部分セレクターと完全セレクタ
 最上位ウィンドウ (アプリケーション) の要素が固定されているため、アプリケーションのタイトル・ウィンドウの位置が変更された場合でも、最上位ウィンドウの要素はセレクターの情報として引き継がれる
そのため、同一のウィンドウ・アプリケーション内で複数の操作を自動化する場合のセレクターに適す
 
◎安定したセレクターの作成方法
・要素が変更する可能性がある場合に使用する、ワイルドカード
・idx を使用するセレクターの場合は、他の属性を追加する
・属性値、またはセレクター全体を変数に置き換える
 -[ハイライト]アクティビティを使って動作確認
   ー対象システム:電卓アプリ
 
 
◎複雑なアプリケーション上の セレクター調整
~ページを更新するごとに要素の位置やセレクターの値が変化する場合のセレクターの調整~
クラウドサービスは、画面上のデザインや要素が頻繁に更新される~
 
[背景]id属性が登録毎に変化する。
[対象アプリ]RPAチャレンジ
 
・ [アンカーベース (Anchor Base)] の活用
  -親属性をセレクタに追加するとidxが出て安定しないのでアンカー使う
  -アンカー位置を指定可
  -[アンカーベース]アクティビティでアンカー指定
  *注)[アンカーベース (Anchor Base)] は画面上に存在する要素を元に処理を実行するため、
      アプリケーションのウィンドウが最小化された場合は正しく機能しない。バックグラウンド
      では使用しないこと!!
・相対セレクター の活用
  -アンカーを使うとバックグラウンドで使えない課題あり=>本件使う
  -[UI Explorer]でアンカー指定
・[子要素を探す(Find Children)] の活用