Machine Learning

Rasa forms

Submitted by Lizhe on Thu, 09/03/2020 - 02:25

一种常见情形是,使用聊天机器人来搜集用户提供的信息,在rasa中,一般这种行为叫做

slot filling

需要在 policy 中添加

 

policies:

  - name: FormPolicy

  - name: MemoizationPolicy

  - name: TEDPolicy

    max_history: 5

    epochs: 100

  - name: MappingPolicy

 

这里我使用的是官方例子,不过做了一些小修改 

 

## request restaurant happy path

* request_restaurant

    - restaurant_form

    - form{"name": "restaurant_form"}

    - form{"name": null}

Docker GPU

Submitted by Lizhe on Thu, 07/30/2020 - 09:16

 

插播一个备忘录

sudo apt install docker.io

sudo usermod -a -G docker lizhe

然后正常退出,重启docker保证能正常使用

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

Rasa 3 NLU

Submitted by Lizhe on Sat, 06/27/2020 - 02:22

The first piece of a Rasa assistant is an NLU model. NLU stands for Natural Language Understanding, which means turning user messages into structured data. To do this with Rasa, you provide training examples that show how Rasa should understand user messages, and then train a model by showing it those examples.

Run the code cell below to see the NLU training data created by the rasa init command:

1

cat data/nlu.md

 

 

lizhe@ubuntu:~/rasa_workspace$ cat data/nlu.md

## intent:greet

- hey

- hello

- hi

Rasa 2 New project

Submitted by Lizhe on Fri, 06/26/2020 - 07:23

The first step is to create a new Rasa project. To do this, run:

1 rasa init --no-prompt

The rasa init command creates all the files that a Rasa project needs and trains a simple bot on some sample data. If you leave out the --no-prompt flag you will be asked some questions about how you want your project to be set up.

 

This creates the following files:

Rasa 1 install

Submitted by Lizhe on Fri, 06/26/2020 - 07:18

Quick Installation

pip3 install rasa

 

1. Create a New Project

rasa init --no-prompt

 

2. View Your NLU Training Data

cat data/nlu.md

 

3. Define Your Model Configuration

cat config.yml

 

4. Write Your First Stories

## story1

Tensorflow 对数几率回归

Submitted by Lizhe on Tue, 08/22/2017 - 05:47

线性回归模型所预测的是一个连续值或任意实数

对数几率回归则用于预测 Y/N 

f(x) = 1/(1+e-x)

log

随着x值(横轴)的变化, y值(纵轴)会在0~1 这个区间内变化, 这里1表示Y, 0表示位N 

这个函数接收单个输入值所以这里如果我们需要使用多个输入值的话,需要将多个值合并成单个值使用

例如如果数据中是 

姓名    年龄    性别

Tom    20       Male

可能需要合并成 Tom_20_Male之后才能放入上面的公式参与计算

这里的例子是计算泰坦尼克的乘客的幸存概率,原始数据为

Tensorflow 线性回归

Submitted by Lizhe on Fri, 08/18/2017 - 03:31

在有监督学习问题中, 线性回归是一种最简单的建模手段.

给定一个数据点集合作为训练集, 线性回归的目标是找到一个与这些数据最为吻合的线性函数.

y(x1,x2,x3,...,xk) = w1x1+w2x2+w3x3+...+wkxk+b

Y 为待预测值

X 是一组独立的预测变量

w 为权值 (可学习)

b 为偏移量 (可学习)

上面的公式用代码表示应该是

Tensorflow 有监督学习

Submitted by Lizhe on Fri, 08/18/2017 - 01:20

有监督的学习在于

使用某个带标注信息的输入数据集合(其中的每个样本都标注了真是的或者期望的输出), 去训练一个推断模型,

该模型能够覆盖一个数据集, 并可对不存在于初始训练集合中的新样本的输出进行干预

这个推断模型实际上是一系列的数学运算, 运算使用的公式是固定的,但是参与运算的值 都是模型的参数, 在训练过程中会被不断更新, 以使模型能够学习,并对其输出进行调整

462

首先需要对模型参数进行初始化. 通常采用对参数随机赋值的方法, 但对于比较简单的模型,也可以将各个参数的初始值全部设置为0

读取训练数据(包括每个数据样本及其期望输出). 通常人们会在这些数据送入模型之前随机打乱样本的次序

在训练数据上执行推断模型. 这样, 在当前模型的参数配置下, 每个训练样本都会得到一个输出值

Tensorflow Summary

Submitted by Lizhe on Thu, 08/17/2017 - 09:27

直接上例子

import tensorflow as tf

data = tf.Variable(0, trainable=False)
increment_data = tf.assign_add(data, tf.constant(1))
tf.scalar_summary('increment_data', data)

sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)

summary_writer = tf.train.SummaryWriter('./my_graph', sess.graph)