本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】入门指南 | 人工智能的新希望(4)

时间:2017-02-20 20:00来源:118图库 作者:开奖直播现场 点击:
当我还是一个小孩的时候,我记得我会捡一根棍子试着用一只手让它保持平衡。我和我的朋友们一起比赛看谁让棍子保持平衡的时间最长就可以得到“奖励

  当我还是一个小孩的时候,我记得我会捡一根棍子试着用一只手让它保持平衡。我和我的朋友们一起比赛看谁让棍子保持平衡的时间最长就可以得到“奖励”,一块巧克力!

  开始我们的代前,我们需要先安装一些东西,

  步骤1:安装keras-rl库

  从终端运行以下命令:

  git clone https://github.com/matthiasplappert/keras-rl.git

  cd keras-rl

  python setup.py install

  步骤2:安装CartPole环境组件

  假设你已经安装了pip,使用pip命令安装以下库

  pip install h5py

  pip install gym

  步骤3:启动

  首先我们要导入所需模块

  import numpy as np

  import gym

  from keras.models import Sequential

  from keras.layers import Dense, Activation, Flatten

  from keras.optimizers import Adam

  from rl.agents.dqn import DQNAgent

  from rl.policy import EpsGreedyQPolicy

  from rl.memory import SequentialMemory

  然后设置相关变量

  ENV_NAME = 'CartPole-v0'

  # Get the environment and extract the number of actions available in theCartpole problem

  env = gym.make(ENV_NAME)

  np.random.seed(123)

  env.seed(123)

  nb_actions = env.action_space.n

  下一步,我们创建一个简单的单隐层神经网络模型。

  model = Sequential()

  model.add(Flatten(input_shape=(1,) + env.observation_space.shape))

  model.add(Dense(16))

  model.add(Activation('relu'))

  model.add(Dense(nb_actions))

  model.add(Activation('linear'))

  print(model.summary())

  接下来,配置并编译我们的代理端。我们将策略设成ε-贪心算法,并且将存储设置成顺序存储方式因为我们想要存储执行操作的结果和每一操作得到的奖励。

  policy = EpsGreedyQPolicy()

  memory = SequentialMemory(limit=50000, window_length=1)

  dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory,nb_steps_warmup=10,

  target_model_update=1e-2, policy=policy)

  dqn.compile(Adam(lr=1e-3), metrics=['mae'])

  dqn.fit(env, nb_steps=5000, visualize=True, verbose=2)

  现在测试强化学习模型

  dqn.test(env, nb_episodes=5, visualize=True)

  This will be the output of our model:

  这就是模型输出结果:

【j2开奖】入门指南 | 人工智能的新希望

  瞧!你构建了一个强化模型的雏形!

  5.增加复杂性

  现在你已经有了一个强化学习的基础成品,让我们来进一步的每次增加一点点复杂度以解决更多的问题。

  问题-汉诺塔

【j2开奖】入门指南 | 人工智能的新希望

  对于不知道该游戏的人简单说明一下——发明于1883年,由3根杆及一些逐增大小的圆盘(如上图中所示的3个一样)从最左边的杆开始,目标是从选择最小移动次数将所有圆盘从最左边移动到最右边(你可以从维基百科得到更多讯息(https://en.wikipedia.org/wiki/Tower_of_Hanoi))。

  如果我们要映射这个问题,从定义状态开始:

  ● 开始状态 – 3个圆盘都在最左边杆上(从上到下依次为1、2、3)

  ● 结束状态 – 3个圆盘都在最右边杆上(从上到下依次为1、2、3)

  所有可能的状态:

  列举可能的27个状态:

【j2开奖】入门指南 | 人工智能的新希望

  图中(12)3*代表的是圆盘1和圆盘2依次在最左边杆上(从上到下),圆盘3在中间杆上,*表示最右边杆为空

  数字奖励:

  因为我们想以最少步数来解决问题,我们可以设定每一步的奖励为-1。

  规则:

  现在,不考虑任何技术细节,我们可以标记出在以上状态间可能出现的转移。例如从奖励为-1的状态(123)** 到状态 (23)1*,也可以是到状态(23)*1。

  同样地,你看出了上面提到的27个状态的每一个都类似于之前销售人员旅行的示意图。我们可以根据之前的经验找出最优解决方案选择不同状态和路径。

  问题 - 3 x 3 魔方

  当我在为你解决这个问题的同时,也想要你自己也做一做。遵照我上面使用的相同步骤,你可以更好的理解和掌握。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容