训练策略网络和价值网络

阿尔法狗2016版本使用人类高手棋谱数据初步训练策略网络,并使用深度强化学习中的REINFORCE算法进一步训练策略网络。策略网络训练好之后,使用策略网络辅助训练价值网络。零狗(AlphaGo Zero)使用MCTS控制两个玩家对弈,用自对弈生成的棋谱数据和胜负关系同时训练策略网络和价值网络。

在机巧围棋中,训练策略网络和价值网络的方法原理与零狗基本相同。

本文将详细讲解阿尔法狗2016版本和零狗中两个神经网络的训练方法。

1. 阿尔法狗2016版本的训练方法

2016年3月,阿尔法狗以4 : 1战胜了世界冠军李世石九段。赛前(2016年1月27日)DeepMind公司在nature上发表论文Mastering the game of Go with deep neural networks and tree search详细介绍了阿尔法狗的算法原理。

阿尔法狗的训练分为三步:

  1. 随机初始化策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)的参数之后,使用行为克隆(Behavior Cloning)从人类高手棋谱中学习策略网络;
  2. 让两个策略网络自我博弈,使用REINFORCE算法改进策略网络;
  3. 使用两个已经训练好的策略网络自我博弈,根据胜负关系数据训练价值网络 v ( s ; ω ) v(s;\omega) v(s;ω)

1.1 行为克隆

REINFORCE算法会让两个策略网络博弈直至游戏结束,使用游戏结束后实际观测到的回报 u u u对策略梯度中的动作价值函数 Q π Q_{\pi} Qπ做蒙特卡洛近似,从而计算出策略梯度的无偏估计值,并做随机梯度上升更新策略网络参数。

一开始的时候,策略网络的参数都是随机初始化的。假如直接使用REINFORCE算法学习策略网络,会让两个随机初始化的策略网络博弈。由于策略网络的参数是随机初始化的,它们会做出随机的动作,要经过一个很久的随机摸索过程才能做出合理的动作。因此,阿尔法狗2016版本使用人类专家知识,通过行为克隆初步训练一个策略网络。

行为克隆是一种最简单的模仿学习,目的是模仿人的动作,学出一个随机策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)。行为克隆的本质是监督学习(分类或回归),其利用事先准备好的数据集,用人类的动作指导策略网络做改进,目的是让策略网络的决策更像人类的决策。

在这个网站上可以下载到K Go Server(KGS,原名Kiseido Go Server)上大量6段以上高手玩家的对局数据,每一局有很多步,每一步棋盘上的格局作为一个状态 s k s_k sk,下一个棋子的位置作为动作 a k a_k ak,这样得到数据集 { ( s k , a k ) } \{(s_k,a_k)\} {(sk,ak)}

设362维向量 f k = π ( ⋅ ∣ s k ; θ ) = [ π ( 0 ∣ s k ; θ ) , π ( 1 ∣ s k ; θ ) , ⋯ , π ( 361 ∣ s k ; θ ) ] f_k=\pi(\cdot|s_k;\theta)=[\pi(0|s_k;\theta),\pi(1|s_k;\theta),\cdots,\pi(361|s_k;\theta)] fk=π(sk;θ)=[π(0sk;θ),π(1sk;θ),,π(361sk;θ)]是策略网络的输出, a ˉ k \bar{a}_k aˉk是对动作 a k a_k ak的独热编码(one-hot)。可以使用 a ˉ k \bar{a}_k aˉk f k f_k fk的交叉熵 H ( a ˉ k , f k ) H(\bar{a}_k,f_k) H(aˉk,fk)作为损失函数,计算损失函数关于策略网络参数的梯度,使用随机梯度下降更新策略网络参数,最小化损失函数的值,使策略网络的决策更接近人类高手的动作。

行为克隆得到的策略网络模仿人类高手的动作,可以做出比较合理的决策。根据阿尔法狗的论文,它在实战中可以打败业余玩家,但是打不过职业玩家。由于人类高手在实际对局中很少探索奇怪的状态和动作,因此训练数据集上的状态和动作缺乏多样性。在数据集 { ( s k , a k ) } \{(s_k,a_k)\} {(sk,ak)}上做完行为克隆之后,策略网络在真正对局时,可能会见到陌生的状态,此时做出的决策可能会很糟糕。如果策略网络做出的动作 a t a_t at不够好,那么下一时刻的状态 s t + 1 s_{t+1} st+1可能会比较罕见,于是做出的下一个动作 a t + 1 a_{t+1} at+1会很差;这又导致状态 s t + 2 s_{t+2} st+2非常奇怪,使得动作 a t + 2 a_{t+2} at+2更糟糕。如此“错误累加”,进入这种恶性循环。

为了克服上述行为克隆的缺陷,还需要用强化学习训练策略网络。在行为克隆之后再做强化学习改进策略网络,可以击败只用行为克隆的策略网络,胜算是80%。

为什么可以使用策略网络输出和人类高手动作独热编码的交叉熵作为损失函数,可以参见我的另一篇博客:为什么交叉熵常被用作分类问题的损失函数。

1.2 使用REINFORCE算法改进策略网络

REINFORCE是一种策略梯度方法,其使用实际观测到的回报 u u u对策略梯度的无偏估计 g ( s , a ; θ ) ≜ Q π ( s , a ) ⋅ ∇ θ ln ⁡ π ( a ∣ s ; θ ) g(s,a;\theta)\triangleq{Q_\pi(s,a)}\cdot\nabla_\theta{\ln\pi(a|s;\theta)} g(s,a;θ)Qπ(s,a)θlnπ(as;θ) Q π Q_\pi Qπ做蒙特卡洛近似,并通过下面的公式做随机梯度上升,更新策略网络:
θ n e w ← θ n o w + β ⋅ ∑ t = 1 n u t ⋅ ∇ ln ⁡ π ( a t ∣ s t ; θ n o w ) ( 1 ) \theta_{new}\leftarrow\theta_{now}+\beta\cdot\sum_{t=1}^nu_t\cdot\nabla\ln\pi(a_t|s_t;\theta_{now})~~~~~~~~~~~~~~~~~~~~~~~(1) θnewθnow+βt=1nutlnπ(atst;θnow)                       (1)
其中, β \beta β是学习率, n n n是游戏至终局共进行的步数, π ( a t ∣ s t ; θ n o w ) \pi(a_t|s_t;\theta_{now}) π(atst;θnow)是策略网络的输出, ln ⁡ π ( a t ∣ s t ; θ n o w ) \ln\pi(a_t|s_t;\theta_{now}) lnπ(atst;θnow)是策略网络输出值的对数, ∇ ln ⁡ π ( a t ∣ s t ; θ n o w ) \nabla\ln\pi(a_t|s_t;\theta_{now}) lnπ(atst;θnow)是策略网络输出值的对数对策略网络参数求的梯度。

如图一所示,阿尔法狗使用两个策略网络进行博弈,将胜负作为奖励,计算回报 u t u_t ut的值。参与博弈的一个策略网络叫做“玩家”,用最新的参数 θ n o w \theta_{now} θnow;另一个叫做“对手”,它的参数是从过时的参数中随机选出来的,记作 θ o l d \theta_{old} θold。“对手”的作用相当于模拟器(环境)的状态转移函数,在训练过程中,只更新“玩家”的参数,不更新“对手”的参数。

图一

让“玩家”和“对手”博弈,将一局游戏进行到底,根据博弈的胜负关系可以确定公式(1)中回报 u t u_t ut的值。假设一局游戏“玩家”共走了 n n n步,设游戏未结束时,奖励 r 1 = r 2 = ⋯ = r n − 1 = 0 r_1=r_2=\cdots=r_{n-1}=0 r1=r2==rn1=0。游戏结束时,如果“玩家”赢了,则奖励 r n = + 1 r_n=+1 rn=+1。“玩家”输了,则奖励 r n = − 1 r_n=-1 rn=1。设定折扣率 γ = 1 \gamma=1 γ=1,当“玩家”赢了,所有的回报 u 1 = u 2 = ⋯ = u n = + 1 u_1=u_2=\cdots=u_n=+1 u1=u2==un=+1,当“玩家”输了,所有的回报 u 1 = u 2 = ⋯ = u n = − 1 u_1=u_2=\cdots=u_n=-1 u1=u2==un=1

回报的定义是 u t = r t + γ r t + 1 + γ 2 r t + 2 ⋯ + γ n r n u_t=r_t+\gamma{r_{t+1}}+\gamma^2r_{t+2}\cdots+\gamma^nr_n ut=rt+γrt+1+γ2rt+2+γnrn,在阿尔法狗中,设定折扣率 γ = 1 \gamma=1 γ=1

REINFORCE算法是深度强化学习领域的一种策略梯度方法,策略梯度的推导比较麻烦,因此本文不会讲解公式(1)的由来。或许以后有时间会系统地讲解深度强化学习相关算法,可以关注我哟~

1.3 训练价值网络

在阿尔法狗中,价值网络 v ( s ; ω ) v(s;\omega) v(s;ω)是对状态价值函数 V π ( s ) V_\pi(s) Vπ(s)的近似,用于评估状态 s s s的好坏。状态价值函数 V π ( s ) V_\pi(s) Vπ(s)依赖于状态 s s s,状态 s s s越好,那么价值 V π ( s ) V_\pi(s) Vπ(s)就越大; V π ( s ) V_\pi(s) Vπ(s)还依赖于策略函数 π \pi π,策略 π \pi π越好,同样价值 V π ( s ) V_\pi(s) Vπ(s)也就越大。如果策略 π \pi π是固定的,则可以用状态价值函数 V π ( s ) V_\pi(s) Vπ(s)评估状态 s s s的好坏。因此,阿尔法狗在完成第二步——训练策略网络 π \pi π之后,用 π \pi π辅助训练 v v v

让训练好的策略网络做自我博弈,每对弈完一局,可以记录(状态—回报)二元组 ( s k , u k ) (s_k,u_k) (sk,uk)。自我博弈需要重复非常多次,将最终得到的数据集记作 { ( s k , u k ) } k = 1 m \{(s_k,u_k)\}_{k=1}^m {(sk,uk)}k=1m。根据定义,状态价值 V π ( s k ) V_\pi(s_k) Vπ(sk)是回报 U k U_k Uk的期望: V π ( s k ) = E [ U k ∣ S k = s k ] V_\pi(s_k)=\mathbb{E}[U_k|S_k=s_k] Vπ(sk)=E[UkSk=sk]。训练价值网络 v ( s ; w ) v(s;w) v(s;w)的目标是使其接近 V π V_\pi Vπ,即让 v ( s ; ω ) v(s;\omega) v(s;ω)拟合回报 u k u_k uk

定义回归问题:
ω m i n 1 2 m ∑ k = 1 m [ v ( s k ; ω ) − u k ] 2 \overset{min}{_\omega}\frac{1}{2m}\sum_{k=1}^m[v(s_k;\omega)-u_k]^2 ωmin2m1k=1m[v(sk;ω)uk]2
用均方误差(MSE)作为损失函数,训练价值网络 v ( s ; ω ) v(s;\omega) v(s;ω),求解这个回归问题。

2. 零狗的训练方法

根据论文Mastering the game of Go without human knowledge可知,零狗和阿尔法狗2016版本的最大区别在于训练策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)的方式。训练 π \pi π的时候,不再向人类高手学习,也不用REINFORCE方法,而是向MCTS学习。可以把零狗训练 π \pi π的方法看做是模仿学习,被模仿的对象不是人类高手,而是MCTS。

2.1 自我博弈

用MCTS控制两个玩家对弈,每走一步棋,需要进行成千上万次模拟,并记录下每个动作被选中的次数 N ( a ) , ∀ a ∈ { 0 , 1 , 2 , ⋯ , 361 } N(a),\forall{a\in\{0,1,2,\cdots,361\}} N(a),a{0,1,2,,361}。设当前时刻为 t t t,棋盘上状态为 s t s_t st,执行MCTS得到362个动作被选中的次数:
N ( 0 ) , N ( 1 ) , ⋯ , N ( 361 ) N(0),N(1),\cdots,N(361) N(0),N(1),,N(361)
对这些动作被选中的次数做归一化,得到362个和为1的正数,将这362个数记作362维向量 p t = n o r m a l i z e ( [ N ( 0 ) , N ( 1 ) , ⋯ , N ( 361 ) ] T ) p_t=normalize\Big([N(0),N(1),\cdots,N(361)]^T\Big) pt=normalize([N(0),N(1),,N(361)]T)

设这一局游戏走了 n n n步之后分出胜负,奖励 r n r_n rn要么等于 + 1 +1 +1,要么等于 − 1 -1 1,取决于游戏的胜负。游戏结束之后,可以得到回报 u 1 = u 2 = ⋯ = u n = r n u_1=u_2=\cdots=u_n=r_n u1=u2==un=rn

每自对弈一局可以得到数据: ( s 1 , p 1 , u 1 ) , ( s 2 , p 2 , u 2 ) , ⋯ , ( s n , p n , u n ) (s_1,p_1,u_1),(s_2,p_2,u_2),\cdots,(s_n,p_n,u_n) (s1,p1,u1),(s2,p2,u2),,(sn,pn,un)。使用这些数训练策略网络 π \pi π和价值网络 v v v。对 π \pi π v v v的训练同时进行。

2.2 训练策略网络和价值网络

根据我的另一篇博客蒙特卡洛树搜索(MCTS)可知,MCTS做出的决策优于策略网络 π \pi π的决策(这也是阿尔法狗使用MCTS做决策,而 π \pi π只是用来辅助MCTS的原因)。既然MCTS做出的决策比 π \pi π更好,那么可以把MCTS的决策作为目标,让 π \pi π去模仿。与1.1节所述行为克隆一致,只不过被模仿的对象不是人类高手,而是MCTS,即训练策略网络的数据不是收集到的人类高手对局数据,而是2.1节所述MCTS控制两个玩家对弈生成的对局数据。

训练价值网络的目标与阿尔法狗2016版本一致,都是让 v ( s t ; ω ) v(s_t;\omega) v(st;ω)拟合回报 u t u_t ut。其中回报 u t u_t ut不是通过策略网络做自我博弈胜负得到,而是2.1节所述方法生成。

在零狗中,对策略网络和价值网络的训练是同时进行的。将策略网络的损失与价值网络的损失相加,作为训练时优化的目标函数:
l = ( u − v ) 2 − π T l o g p + c ( ∣ ∣ θ ∣ ∣ 2 + ∣ ∣ ω ∣ ∣ 2 ) l=(u-v)^2-\pi^Tlog~p+c\big(||\theta||^2+||\omega||^2\big) l=(uv)2πTlog p+c(θ2+ω2)
其中, u u u是2.1所述通过MCTS自我博弈收集到的回报数据, v v v是价值网络输出, ( u − v ) 2 (u-v)^2 (uv)2即为价值网络的损失(均方损失); π \pi π是策略网络输出, p p p是2.1所述通过MCTS自我博弈收集到的被归一化了的每个动作被选中次数数据, − π T l o g p -\pi^Tlog~p πTlog p即为策略网络的损失(交叉熵损失); θ \theta θ ω \omega ω分别是策略网络参数和价值网络参数, ( ∣ ∣ θ ∣ ∣ 2 + ∣ ∣ ω ∣ ∣ 2 ) \big(||\theta||^2+||\omega||^2\big) (θ2+ω2)即为防止过拟合的正则项(L2正则); c c c是一个超参数,用于控制L2正则化权重。

零狗论文中所述神经网络 f θ ( s ) = ( P ( s , ⋅ ) , V ( s ) ) f_\theta(s)=\big(P(s,\cdot),V(s)\big) fθ(s)=(P(s,),V(s))由策略网络和价值网络构成,因此论文中神经网络参数 θ \theta θ,等同于本文中的策略网络和价值网络参数 θ + ω \theta+\omega θ+ω。如果读者留意到零狗论文中目标函数 l = ( u − v ) 2 − π T l o g p + c ∣ ∣ θ ∣ ∣ 2 l=(u-v)^2-\pi^Tlog~p+c||\theta||^2 l=(uv)2πTlog p+cθ2与文本所述存在一定差别,不必感到疑惑,也不必质疑本文的正确性。

本文对论文中相关原理以更容易理解的方式来表述,但是相关方法在本质上是相同的。

2.3 训练流程

随机初始化策略网络参数 θ \theta θ和价值网络参数 ω \omega ω,然后让MCTS自我博弈,玩很多局游戏。每完成一局游戏,更新一次 θ \theta θ ω \omega ω。具体训练流程如下,训练会重复如下步骤直到收敛:

  1. 让MCTS自我博弈,完成一局游戏,收集到 n n n个三元组: ( s 1 , p 1 , u 1 ) , ( s 2 , p 2 , u 2 ) , ⋯ , ( s n , p n , u n ) (s_1,p_1,u_1),(s_2,p_2,u_2),\cdots,(s_n,p_n,u_n) (s1,p1,u1),(s2,p2,u2),,(sn,pn,un)
  2. 做梯度下降,同时更新策略网络参数 θ \theta θ和价值网络参数 ω \omega ω

3. 结束语

本文介绍了阿尔法狗2016版本和零狗中训练策略网络和价值网络的方法,机巧围棋中训练方法与零狗基本一致。大家可以在GitHub上clone机巧围棋的代码,结合本文理解和学习零狗的训练方法。

最后,期待您能够给本文点个赞,同时去GitHub上给机巧围棋项目点个Star呀~

机巧围棋项目链接:https://github.com/QPT-Family/QPT-CleverGo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33260.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机永远无法超越人类——从李世石与阿尔法的人机大战中想到的

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/52214884 本文出自【我是干勾鱼的博客】 大家好!我是海东。前一阵子李世石与谷歌阿尔法的围棋人机大战引起了大家的广泛关注,今天我们就来聊聊计算机与人类的较量。 首先海…

机巧围棋(CleverGo)项目总览及介绍

1. 项目简介 2016年3月,阿尔法狗以4:1战胜围棋世界冠军李世石。自此开始,深度强化学习受到空前的关注并成为AI领域的研究热点,彻底引爆了以深度学习为核心技术的第三次人工智能热潮。 机巧围棋利用PythonPygamePaddlePaddle基于AlphaGo Zer…

算法高级(45)-阿尔法狗到底有多厉害?

1997年5月11日,一台名为“深蓝”的超级电脑将棋盘上的一个兵走到C4位置时,人类有史以来最伟大的国际象棋名家卡斯帕罗夫不得不沮丧地承认自己输了。世纪末的一场人机大战终于以计算机的微弱优势取胜。 当然,国际象棋这样的棋类比赛&#xff…

什么是阿尔法和贝塔?

不管是买基金进行投资的基民,还是专业挑选基金经理的各种机构,都会面临这么一个问题: XX基金在过去X年涨/跌了X%,它的表现如何?算好,还是不好? 要把这个问题讲清楚,我们就需要向大…

谷歌计算机围棋程序,阿尔法狗教你下棋 谷歌上线AlphaGo围棋教学工具

【PConline 资讯】看起来AlphaGo在围棋界真的是无敌了,如果这么强大聪明的AI变成了围棋老师,对于人类来说是不是又是另一种体验呢?12月13号,谷歌旗下的DeepMind上线了这款在线AlphaGo围棋教学工具(点击此访问)。放心点进去&#x…

人工智能围棋战胜李世石,人工智能围棋阿尔法狗

AI让围棋失去了很多魅力,人工智能对围棋游戏的影响有多大? 人工智能对围棋影响是两面性的,围棋本身就是一种娱乐方式,并不一定是说人工智能完胜人类之后就会让这种娱乐消失。我们可以通过人工智能学习到更精的棋艺,而…

阿尔法围棋是人工智能吗,围棋智能机器人阿法狗

阿尔法狗什么意思? 阿尔法狗是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能机器人。其英文名为AlphaGo,音译中文后戏称为阿尔法狗。 人工智能围棋项目:小发猫 阿尔法狗其主要工作原理是“深度学习”。“深度学习”是指多层的人工神…

阿尔法狗与机巧围棋的网络结构

阿尔法狗(AlphaGo)的意思是“围棋王”,俗称“阿尔法狗”,它是世界上第一个打败人类围棋冠军的AI。2015年10月,阿尔法狗以5 : 0战胜了欧洲围棋冠军樊麾二段,在2016年3月,阿尔法狗以4 : 1战胜了世界冠军李世石九段。2017…

围棋智能机器人阿法狗,阿尔法狗机器人围棋

第一个战胜围棋世界冠军的人工智能程序是什么? 阿尔法狗(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序,由谷歌(Google)公司的团队开发。其主要工作原理是“深度学习”。 人工智能围棋项目:小发猫 2017年5月…

阿尔法围棋击败人类是计算机在那方面的应用,阿尔法围棋战胜人类:人工智能又一胜利...

计算机下棋的思考模式 现在主流弈棋计算机的基本“思考模式”很简单,就是对当前局面下的每一种合法走法所直接导致的局面进行评估,然后选择“获胜概率”最高的局面所对应的那个走法。也就是说,“准确评估给定局面的胜率”是主流弈棋计算机的核…

spring-boot3 重定向(状态码:302)问题(无论访问那个接口都会被重定向到 【/login】登录界面)

问题描述 今天使用spring-boot做了热重载以后出现了一个问题,我无论访问那个接口都会导致接口被重定向到下面这个界面 地址是 :“localhost:/login” chatGPT解决方式 问了一下 chatGPT,下面是他给我的答案(没能解决)&#xf…

Linux 创建文件的12种方法总结

在Linux中,可以使用多种方法来创建文件。以下是一些常见的方法: 1. touch命令 touch filename,用于创建一个空文件。如果文件已存在,则只更新其访问时间和修改时间。 touch 命令通常用于将文件的访问和修改时间更新为当前时间。…

【Linux】云服务器Centos 7安装nginx,设置二级域名转发端口

这里写目录标题 一、 Nginx 安装1.1 安装Nginx1.2 使用1.3 自启动配置 二、Nginx详细2.1 相关命令2.2 二级域名转发 三、 SSL配置3.1 确保Nginx安装了SSL模块3.2 下载证书其它 一、 Nginx 安装 1.1 安装Nginx 下载网址为http://nginx.org/en/download.html,如下当…

网络爬虫有什么用?怎么爬?手把手教你爬网页(Python代码)

导读:本文主要分为两个部分:一部分是网络爬虫的概述,帮助大家详细了解网络爬虫;另一部分是HTTP请求的Python实现,帮助大家了解Python中实现HTTP请求的各种方式,以便具备编写HTTP网络程序的能力。 作者&…

微软也搞起了开源小模型!利用OpenAI的ChatGPT和GPT-4 训练,实力碾压当前最强开源模型...

来源:AI前线 整理:核子可乐,褚杏娟 Chatbot Arena 等排行榜已经反复证明,数十亿美元支撑起来的 ChatGPT 仍然是聊天机器人领域无可争辩的王者。而人们只能调用其 API ,无法私有化部署,无法自己训练调整。…

创新案例|专注在线 协作平台 设计产品中国首家PLG独角兽企业蓝湖如何实现98%的头部企业渗透率

蓝湖起步于2015年,是一款服务于产品经理、设计师、工程师的产品设计研发在线协作工具, 2021年10月,蓝湖宣布完成C轮融资,融资额高达10亿人民币,称为中国2B市场中首家采用PLG发展的独角兽企业,并实现了从100…

OpenAI发布人工智能安全路径报告

2023年4月5日,OpenAI在其官网上发布了**《我们迈向人工智能安全的路径》(Our approach to AI safety)** 一文,对包括ChatGPT在内的AI产品安全问题进行回应。这一公告内容从六个角度对其AI产品的安全愿景进行了声明。此前,韩国三星称ChatGPT导…

网安业绩疲软,云计算生变,深信服造血能力成谜

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 深信服的转型,难以看到终点。 作为网安巨头的深信服,其业务体量曾度过一段高速增长的阶段。近五年,网络安全行业都处于持续增长的阶段,深信服也保持着整体业绩的增速。 但不能…

AI智能课程:第九节:让chatGPT当你的面试官

后续课程安排 面试官能力分析 专业打造各类面试官 设定初步结构 向chatGPT提问 最终呈现的效果 设定面试范围 面试管打造-分步法 练习 linux端 插件推荐:如何让自己的world更智能 拓展知识 创意玩法

使用ChatGPT 当回运营面试官,他真的好会,被震撼到了

使用移动端,多端都能体验ChatGPT,被震撼到了,这是我问的运营面试 使用 ChatGPT