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層以上はバッチ正規化を使わないと収束しない
◎その他
・勾配消失問題とは
- バックプロパゲーションにおいて誤差は逆向きに伝搬
- 数式上は活性化関数の微分項を含む
- ニューラルネットワークの活性化関数のシグモイド関数の微分項は最大値0.25
- 隠れ層を遡るごとに微分項が掛け合わされ伝搬する誤差は小さくなる
参考文献
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活用が進むか
◎ さまざまな分野と最先端の事例
・数値・表形式系
・画像/映像系
・文章/言語系
・音声/音楽系
・その他の応用
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)
-画像以外に改良
-ディープラーニング実装用のライブラリのほぼ全てがNVIDIA社製をサポート
・TPU(Tensor Processing Unit)
・ディープラーニングのデータ量
-学習・・・モデルがもつパラメータの最適化
-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 製品を選びましょう
そのため、同一のウィンドウ・アプリケーション内で複数の操作を自動化する場合のセレクターに適す