神经网络第三章(前馈神经网络)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
32
3.1.5多层感知器
(a)开域
(b)闭域
33
3.1.5多层感知器
感知器结构 异或问题
⊿Wj(t)=[dj-oj (t)]X
复杂问题 判决域形状 判决域
无隐层
半平面
单隐层
凸 域
双隐层
任意复杂 形状域
具有不同隐层数的感知器的分类能力对比
返回 34
§3.2自适应线性单元
1962年美国斯坦福大学教授Widrow提出一种 自适应可调的神经网络,其基本构成单元称
式中,当实际输出与期望值相同时,权值不需要调整。感知 器学习规则代表一种有导师学习。
20
3.1.3感知器的学习
感知器学习规则的训练步骤: (1) 对各权值w0j(0),w1j(0),┄,wnj(0),j=1, 2,…,m (m为计算层的节点数)赋予较小的非零随机数; (2) 输入样本对{Xp,dp},其中Xp=(-1,x1p,x2p,…,xnp), dp为期望的输出向量(教师信号),上标p代表 样本对的模式序号,设样本集中的样本总数为P, 则p=1,2,…,P;
为自适应线性单元。这种自适应可调的神经
网络主要适用于信号处理中的自适应滤波、
预测和模式识别。
返回
35
§3.3 BP网络 误差评价
1 2 r
d1
d2
dr
dM
y y y y 误差反向传播神经网络,简称 BP (Back Propagation)网络,是一种单向传播的多层前向网络。 输出层 在模式识别、图像处理、系统辨识、函数拟合、优 wrk 化计算、最优预测和自适应控制等领域有着较为广 误差 v 第二隐层 泛的应用。
1 0
1 1
1 1 0
30
给出具有一个具有单隐层的感知器,其中隐层的两个节点相当于两 个独立的符号单元(但计算节点感知器)。这两个符号单元可分别 在由x1、x2构成的平面上确定两条分界直线S1和S2,从而构成一个 开放式凸域。显然通过适当调整两条直线的位臵,可使两类线性不 可分样本分别位于该开放式凸域内部和外部。此时对于隐节点1来 说,直线S1下面的样本使其输出y1=1,而直线上面的样本使其输出 为y2=1,而直线下面的样本使其输出为y2=0。 当输入样本为o类时,其位臵位于开放式凸域外部,即或者同时同 时处在两直线S1、S2上方,使y1=0,y2=1;或者同时处在两直线S1、 S2下方,使y1=1,y2=0。 输出层节点一隐层两节点的输出y1、y2作为输入,其结构也相当 于一个符号单元。如果经过训练,使其具有逻辑‚与非‛功能,则 疑惑问题即可得到解决。根据‚与非‛逻辑,当隐节点输出为y1=1, y2=1时,该节点输出为o=0,当隐节点输出为y1=1,y2=0时,或 y1=0,y2=1时,该节点输出o=1。可以看出单隐层感知器确实可以 解决异或问题,因此具有解决线性不可分问题的能力。
21
3.1.3感知器的学习
(3)计算各节点的实际输出ojp(t)=sgn[WjT(t)Xp], j=1,2,...,m; (4)调整各节点对应的权值,Wj(t+1)= Wj(t)+η[djp-ojp(t)]Xp, j=1, 2,…,m, 其中为学习率,用于控制调整速度,太大 会影响训练的稳定性,太小则使训练的收敛速度变慢, 一般取0<η≤1; (5)返回到步骤(2)输入下一对样本,周而复始直到对所有 样本,感知器的实际输出与期望输出相等。
M
k
vj
wkj
第一隐层 输入层
信号
x1
x2
xr
xM
36
BP网络的示意图
误差反向传播算法简称BP算法,其基本思想是最 小二乘法。它采用梯度搜索技术,以期使网络的 实际输出值与期望输出值的误差均方值为最小。 BP算法的学习过程由正向传播和反向传播组成。 在正向传播过程中,输入信息从输入层经隐含层 逐层处理,并传向输出层,每层神经元(节点) 的状态只影响下一层神经元的状态。如果在输出 层不能得到期望输出,则转入反向传播,将误差 信号沿原来的连接通路返回,通过修改各层神经 元的权值,使误差信号最小。
* * *
8
wij x1+w2j x2 – Tj = 0
wij x1 = Tj - w2j x2
x1
x1 = (Tj -w2j x2) / wij = - ( w2j/ wij ) x2 +Tj / wij = a x2 +c
* * * * * * * O O * *
* * O O O O O O x2 O
10
WT j X0
是什么?
x1 * * * * * * x3 * O O * * O O O * * O O x2 O
wij x1+w2j x2 +w3j x3– Tj = 0
x1 = a x2 +b x3 +c
11
设输入向量X=(x1, x2, …, xn)T wijx1+w2jx2+…+wnj –Tj=0 输出: 则由方程 wijx1+w2jx2+…+wnj –Tj=0
有各种功能特点的神经网络。
2
§3.1 感知器 §3.2 自适应线性单元 §3.3 BP网络 §3.4 BP网络变通结构
§3.5BP网络学习算法的改进
§3.6BP网络设计基础
§3.7 BP网络应用与设计实例
§3.8 小结
3
§3.1 感知器
1958年,美国心理学家Frank
Rosenblatt提出一 种具有单层计算单元的神经网络,即感知器。感知 器是模拟人的视觉接受环境信息,并由神经冲动进 行信息传递。感知器研究中首次提出了自组织、自 学习的思想,而且对说解决的问题存在着收敛算法, 并能从数学上严格证明,因而对神经网络的研究起 了非常重要的推动作用。 单层感知器的结构和功能都很简单,以至于在解决 实际问题是很少采用,但由于它在神经网络研究中 具有重要意义,是研究其他网络的基础,而且较易 学习和理解,适合于作为神经网络的起点。
y 0 0 0 1
14
例一 能
用感知器实现逻辑“与”功
感知器结构
x1 x2
○ ○
0.5 0.5
○
0.75 -1
y
w1x1+w2x2 -T=0 0.5x1+0.5x2-0.75=0
15
例 用感知器实现逻辑‚或‛功能
逻辑‚或‛真值表
x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 1
16
用感知器实现逻辑‚或‛功能
9
设输入向量X=(x1,x2,x3)T
x1 x2
oj
-1
x3
1 w1 j x1 w2 j x2 w3 j x3 T j 0 输出: o j 1 w1 j x1 w2 j x2 w3 j x3 T j 0
则由方程 wijx1+w2jx2+w3j –Tj=0 确定了三维空间上的一个分界平面。
-1
x2
w1 j x1 w2 j x2 T j 0 w1 j x1 w2 j x2 T j 0
则由方程 wijx1+w2jx2-Tj=0 确定了二维平面上的一条分界线。
7
感知器的功能(二维)
WT j X0
WT j X0
x1 * * * * * O O * O O O O * * O O T WjOX 0 x2
=(0.7,0.8,-0.6,0)T
由于d2= o2(1),所以W(2)= W(1)。
26
3.1.3感知器的学习
第三步 输入X3,得
WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T=-2.1
O3(2)=sgn(-2.1)=-1 W(3)= W(2)+η [d3- o3(2)] X3 =(0.7,0.8,-0.6,0)T+0.1[1-(-1)](-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T
4
3.1.1 感知器模型
o1
W1
…
Wj
oj
…
om
○
○
Wm○
○
x1
○
x2
○
…
T
xi
○
…
xn
X ( x1,x2 ,...xi ,...,xn )
O (o1,o2 ,...oi ,...,om )
T
j=1,2,…,m
5
T W j (w1 j ,w2 j ,...w ,...,w ) ij nj
37
误差反传(BP)算法
o1 W1○
…
ok Wk○
…
ol
Wl
○
…
y1○ V1
y2○
…
○ yj
○ym
Vm
○
x1
○
x2
…
○
xi
…
○
xn-1
○
xn
第三章 前馈神经网络
本章主要介绍最常用的两种前馈网络: BP (Back Propagation)神经网络和径向基函数神 经网络,以及它的前身感知器、自适应线性 单元。
前馈神经网络是神经网络中的一种典型的分层
结构,信息从输入层进入网络后逐层向前传递
至输出层。根据前馈网络中神经元转移函数、
隐层数以及权值调整规则的不同,可以形成具
设初始权向量W(0)=(0.5,1,-1,0)T,η=0.1。注意,输 入向量中第一个分量x0恒等于-1,权向量中第一个分量 为阈值,试根据以上学习规则训练该感知器。
24
3.1.3感知器的学习
解:第一步 输入X1,得
WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5
o1(0)=sgn(2.5)=1 W(1)= W(0)+η [d1- o1(0)] X1 =(0.5,1,-1,0)T+0.1(-1-1)(-1,1,-2,0)T =(0.7,0.8,-0.6,0)T
22
感知器学习规则的训练步骤:
(1)权值初始化 (2)输入样本对
(3)计算输出
(4)根据感知器学习规则调整权值
(5)返回到步骤(2)输入下一对样本,周而 复始直到对所有样本,感知器的实际输出与 期望输出相等。
23
3.1.3感知器的学习
例 单计算节点感知器,3个输入。给定3对训练样本对 如下: X1 = (-1,1,-2,0)T X2 = (-1,0,1.5,-0.5)T X3 = (-1,-1,1,0.5)T d1 =1 d2 = 1 d3 =1
25
3.1.3感知器的学习
第二步 输入X2,得 WT(1)X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T=-1.6 o2(1)=sgn(-1.6)=-1 W(2)= W(1)+η [d2- o2(1)] X2 =(0.7,0.8,-0.6,0)T+0.1[-1-(-1)](-1,0,1.5,-0.5)T
确定了n维空间上的一个分界平面。
12
3.1.2感知器的功能
一个最简单的单计算节点感知器具有分类功 能。其分类原理是将分类知识存储于感知器的权 向量(包含了阈值)中,由权向量确定的分类判
决界面将输入模式分为两类。
13
例 用感知器实现逻辑‚与‛功能
逻辑‚与‛真值 表
x1 0 0 1 1
x2 0 1 0 1
第四步 返回到第一步,继续训练直到dp- op=0,p=1,2,3。
27
3.1.4单层感知器的局限性
问题:能否用感知器解决如下问题?
x1
O
O
x2
28
3.1.4单层感知器的局限性
无法解决‚异或‛问题
“异或‛的真值表
x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 0
只能解决线性可分问题
29
3.1.5多层感知器
例四 用两计算层感知器解决‚异或‛问题。 “异或‛问题分 类 x
1
双层感知器
o
“异或‛的真值表 x1 x2 y1 y2 o 0 0 0 1
x2
○
T3 -1 T1 -1
y1
y2
S1
○
w11 T2 w12
○
w21 w22
O
1 1 1 0 0 1
0 1 1
O S2
○
x1
○
x2
感知器结构
x1 x2
○
1
1
○
0.5 -1
y
○
w1x1+w2x2 -T=0 x1+x2-0.5=0
17
问题:能否用感知器实现‚异或‛功能?
“异或‛的真值表 x1 x2 y 0 0 0 1 0 1
x1
O
O
1
1
0
1
1
0
x2
18
关键问题就是求
T Wj X 0
19
3.1.3感知器的学习
Perceptron(感知器)学习规则
31
多层感知器的提出
单计算层感知器的局限性
只能解决线性可分问题,而大量的分类问题是线性 不可分的。
解决的有效办法
在输入层与输出层之间引入隐层作为输入模式的 ‚内部表示‛,将单计算层感知器变成多(计算) 层感知器。
采用非线性连续函数作为转移函数,使区域边界线 的基本线素由直线变成曲线,从而使整个边界线变 成连续光滑的曲线。
3.1.1感知器模型
net j
净输入:
i 1
n
wij xi
输出:
o j sgn(net j T j ) sgn(
wk.baidu.com
i 0
n
wij xi ) sgn(W T j X)
6
3.1.2感知器的功能
x1
(1)设输入向量X=(x1 ,x2)T
1 输出: oj 1
oj
3.1.5多层感知器
(a)开域
(b)闭域
33
3.1.5多层感知器
感知器结构 异或问题
⊿Wj(t)=[dj-oj (t)]X
复杂问题 判决域形状 判决域
无隐层
半平面
单隐层
凸 域
双隐层
任意复杂 形状域
具有不同隐层数的感知器的分类能力对比
返回 34
§3.2自适应线性单元
1962年美国斯坦福大学教授Widrow提出一种 自适应可调的神经网络,其基本构成单元称
式中,当实际输出与期望值相同时,权值不需要调整。感知 器学习规则代表一种有导师学习。
20
3.1.3感知器的学习
感知器学习规则的训练步骤: (1) 对各权值w0j(0),w1j(0),┄,wnj(0),j=1, 2,…,m (m为计算层的节点数)赋予较小的非零随机数; (2) 输入样本对{Xp,dp},其中Xp=(-1,x1p,x2p,…,xnp), dp为期望的输出向量(教师信号),上标p代表 样本对的模式序号,设样本集中的样本总数为P, 则p=1,2,…,P;
为自适应线性单元。这种自适应可调的神经
网络主要适用于信号处理中的自适应滤波、
预测和模式识别。
返回
35
§3.3 BP网络 误差评价
1 2 r
d1
d2
dr
dM
y y y y 误差反向传播神经网络,简称 BP (Back Propagation)网络,是一种单向传播的多层前向网络。 输出层 在模式识别、图像处理、系统辨识、函数拟合、优 wrk 化计算、最优预测和自适应控制等领域有着较为广 误差 v 第二隐层 泛的应用。
1 0
1 1
1 1 0
30
给出具有一个具有单隐层的感知器,其中隐层的两个节点相当于两 个独立的符号单元(但计算节点感知器)。这两个符号单元可分别 在由x1、x2构成的平面上确定两条分界直线S1和S2,从而构成一个 开放式凸域。显然通过适当调整两条直线的位臵,可使两类线性不 可分样本分别位于该开放式凸域内部和外部。此时对于隐节点1来 说,直线S1下面的样本使其输出y1=1,而直线上面的样本使其输出 为y2=1,而直线下面的样本使其输出为y2=0。 当输入样本为o类时,其位臵位于开放式凸域外部,即或者同时同 时处在两直线S1、S2上方,使y1=0,y2=1;或者同时处在两直线S1、 S2下方,使y1=1,y2=0。 输出层节点一隐层两节点的输出y1、y2作为输入,其结构也相当 于一个符号单元。如果经过训练,使其具有逻辑‚与非‛功能,则 疑惑问题即可得到解决。根据‚与非‛逻辑,当隐节点输出为y1=1, y2=1时,该节点输出为o=0,当隐节点输出为y1=1,y2=0时,或 y1=0,y2=1时,该节点输出o=1。可以看出单隐层感知器确实可以 解决异或问题,因此具有解决线性不可分问题的能力。
21
3.1.3感知器的学习
(3)计算各节点的实际输出ojp(t)=sgn[WjT(t)Xp], j=1,2,...,m; (4)调整各节点对应的权值,Wj(t+1)= Wj(t)+η[djp-ojp(t)]Xp, j=1, 2,…,m, 其中为学习率,用于控制调整速度,太大 会影响训练的稳定性,太小则使训练的收敛速度变慢, 一般取0<η≤1; (5)返回到步骤(2)输入下一对样本,周而复始直到对所有 样本,感知器的实际输出与期望输出相等。
M
k
vj
wkj
第一隐层 输入层
信号
x1
x2
xr
xM
36
BP网络的示意图
误差反向传播算法简称BP算法,其基本思想是最 小二乘法。它采用梯度搜索技术,以期使网络的 实际输出值与期望输出值的误差均方值为最小。 BP算法的学习过程由正向传播和反向传播组成。 在正向传播过程中,输入信息从输入层经隐含层 逐层处理,并传向输出层,每层神经元(节点) 的状态只影响下一层神经元的状态。如果在输出 层不能得到期望输出,则转入反向传播,将误差 信号沿原来的连接通路返回,通过修改各层神经 元的权值,使误差信号最小。
* * *
8
wij x1+w2j x2 – Tj = 0
wij x1 = Tj - w2j x2
x1
x1 = (Tj -w2j x2) / wij = - ( w2j/ wij ) x2 +Tj / wij = a x2 +c
* * * * * * * O O * *
* * O O O O O O x2 O
10
WT j X0
是什么?
x1 * * * * * * x3 * O O * * O O O * * O O x2 O
wij x1+w2j x2 +w3j x3– Tj = 0
x1 = a x2 +b x3 +c
11
设输入向量X=(x1, x2, …, xn)T wijx1+w2jx2+…+wnj –Tj=0 输出: 则由方程 wijx1+w2jx2+…+wnj –Tj=0
有各种功能特点的神经网络。
2
§3.1 感知器 §3.2 自适应线性单元 §3.3 BP网络 §3.4 BP网络变通结构
§3.5BP网络学习算法的改进
§3.6BP网络设计基础
§3.7 BP网络应用与设计实例
§3.8 小结
3
§3.1 感知器
1958年,美国心理学家Frank
Rosenblatt提出一 种具有单层计算单元的神经网络,即感知器。感知 器是模拟人的视觉接受环境信息,并由神经冲动进 行信息传递。感知器研究中首次提出了自组织、自 学习的思想,而且对说解决的问题存在着收敛算法, 并能从数学上严格证明,因而对神经网络的研究起 了非常重要的推动作用。 单层感知器的结构和功能都很简单,以至于在解决 实际问题是很少采用,但由于它在神经网络研究中 具有重要意义,是研究其他网络的基础,而且较易 学习和理解,适合于作为神经网络的起点。
y 0 0 0 1
14
例一 能
用感知器实现逻辑“与”功
感知器结构
x1 x2
○ ○
0.5 0.5
○
0.75 -1
y
w1x1+w2x2 -T=0 0.5x1+0.5x2-0.75=0
15
例 用感知器实现逻辑‚或‛功能
逻辑‚或‛真值表
x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 1
16
用感知器实现逻辑‚或‛功能
9
设输入向量X=(x1,x2,x3)T
x1 x2
oj
-1
x3
1 w1 j x1 w2 j x2 w3 j x3 T j 0 输出: o j 1 w1 j x1 w2 j x2 w3 j x3 T j 0
则由方程 wijx1+w2jx2+w3j –Tj=0 确定了三维空间上的一个分界平面。
-1
x2
w1 j x1 w2 j x2 T j 0 w1 j x1 w2 j x2 T j 0
则由方程 wijx1+w2jx2-Tj=0 确定了二维平面上的一条分界线。
7
感知器的功能(二维)
WT j X0
WT j X0
x1 * * * * * O O * O O O O * * O O T WjOX 0 x2
=(0.7,0.8,-0.6,0)T
由于d2= o2(1),所以W(2)= W(1)。
26
3.1.3感知器的学习
第三步 输入X3,得
WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T=-2.1
O3(2)=sgn(-2.1)=-1 W(3)= W(2)+η [d3- o3(2)] X3 =(0.7,0.8,-0.6,0)T+0.1[1-(-1)](-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T
4
3.1.1 感知器模型
o1
W1
…
Wj
oj
…
om
○
○
Wm○
○
x1
○
x2
○
…
T
xi
○
…
xn
X ( x1,x2 ,...xi ,...,xn )
O (o1,o2 ,...oi ,...,om )
T
j=1,2,…,m
5
T W j (w1 j ,w2 j ,...w ,...,w ) ij nj
37
误差反传(BP)算法
o1 W1○
…
ok Wk○
…
ol
Wl
○
…
y1○ V1
y2○
…
○ yj
○ym
Vm
○
x1
○
x2
…
○
xi
…
○
xn-1
○
xn
第三章 前馈神经网络
本章主要介绍最常用的两种前馈网络: BP (Back Propagation)神经网络和径向基函数神 经网络,以及它的前身感知器、自适应线性 单元。
前馈神经网络是神经网络中的一种典型的分层
结构,信息从输入层进入网络后逐层向前传递
至输出层。根据前馈网络中神经元转移函数、
隐层数以及权值调整规则的不同,可以形成具
设初始权向量W(0)=(0.5,1,-1,0)T,η=0.1。注意,输 入向量中第一个分量x0恒等于-1,权向量中第一个分量 为阈值,试根据以上学习规则训练该感知器。
24
3.1.3感知器的学习
解:第一步 输入X1,得
WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5
o1(0)=sgn(2.5)=1 W(1)= W(0)+η [d1- o1(0)] X1 =(0.5,1,-1,0)T+0.1(-1-1)(-1,1,-2,0)T =(0.7,0.8,-0.6,0)T
22
感知器学习规则的训练步骤:
(1)权值初始化 (2)输入样本对
(3)计算输出
(4)根据感知器学习规则调整权值
(5)返回到步骤(2)输入下一对样本,周而 复始直到对所有样本,感知器的实际输出与 期望输出相等。
23
3.1.3感知器的学习
例 单计算节点感知器,3个输入。给定3对训练样本对 如下: X1 = (-1,1,-2,0)T X2 = (-1,0,1.5,-0.5)T X3 = (-1,-1,1,0.5)T d1 =1 d2 = 1 d3 =1
25
3.1.3感知器的学习
第二步 输入X2,得 WT(1)X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T=-1.6 o2(1)=sgn(-1.6)=-1 W(2)= W(1)+η [d2- o2(1)] X2 =(0.7,0.8,-0.6,0)T+0.1[-1-(-1)](-1,0,1.5,-0.5)T
确定了n维空间上的一个分界平面。
12
3.1.2感知器的功能
一个最简单的单计算节点感知器具有分类功 能。其分类原理是将分类知识存储于感知器的权 向量(包含了阈值)中,由权向量确定的分类判
决界面将输入模式分为两类。
13
例 用感知器实现逻辑‚与‛功能
逻辑‚与‛真值 表
x1 0 0 1 1
x2 0 1 0 1
第四步 返回到第一步,继续训练直到dp- op=0,p=1,2,3。
27
3.1.4单层感知器的局限性
问题:能否用感知器解决如下问题?
x1
O
O
x2
28
3.1.4单层感知器的局限性
无法解决‚异或‛问题
“异或‛的真值表
x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 0
只能解决线性可分问题
29
3.1.5多层感知器
例四 用两计算层感知器解决‚异或‛问题。 “异或‛问题分 类 x
1
双层感知器
o
“异或‛的真值表 x1 x2 y1 y2 o 0 0 0 1
x2
○
T3 -1 T1 -1
y1
y2
S1
○
w11 T2 w12
○
w21 w22
O
1 1 1 0 0 1
0 1 1
O S2
○
x1
○
x2
感知器结构
x1 x2
○
1
1
○
0.5 -1
y
○
w1x1+w2x2 -T=0 x1+x2-0.5=0
17
问题:能否用感知器实现‚异或‛功能?
“异或‛的真值表 x1 x2 y 0 0 0 1 0 1
x1
O
O
1
1
0
1
1
0
x2
18
关键问题就是求
T Wj X 0
19
3.1.3感知器的学习
Perceptron(感知器)学习规则
31
多层感知器的提出
单计算层感知器的局限性
只能解决线性可分问题,而大量的分类问题是线性 不可分的。
解决的有效办法
在输入层与输出层之间引入隐层作为输入模式的 ‚内部表示‛,将单计算层感知器变成多(计算) 层感知器。
采用非线性连续函数作为转移函数,使区域边界线 的基本线素由直线变成曲线,从而使整个边界线变 成连续光滑的曲线。
3.1.1感知器模型
net j
净输入:
i 1
n
wij xi
输出:
o j sgn(net j T j ) sgn(
wk.baidu.com
i 0
n
wij xi ) sgn(W T j X)
6
3.1.2感知器的功能
x1
(1)设输入向量X=(x1 ,x2)T
1 输出: oj 1
oj