一位优秀管理者每天应该做的10件事

导语:

一个管理者,核心职能就是管理、指挥、协调、控制。想成为一个优秀的管理者,必须围绕核心职能开展工作,最终实现“人”管出士气,“事”管出效率。那么,一个优秀的管理者每天应该做哪些工作呢?

 

1,查看报表。除晨会外,每天第一件工作就是查看报表,如销售、生产、质量、财务、库存、项目等。看报表、查数据、跟进度、找问题。

2,计划跟踪。对经营计划、工作计划、项目计划、周期计划要每天查看跟踪进度,出现问题,及时协调。

3,布置工作。除已列入计划管理的工作按部就班运行外,每天要对工作重点、注意事项、临时任务进行安排部署。

4,巡视检查。管理者不应整天在办公室发号施令,而应该到团队中间去,到现场去,从巡视检查中发现问题。

5,个别谈话。必要的时候,要找员工谈话交流,这既是提高员工士气的好方法,又是发现问题和不足的好途径。

6,协调沟通。管理者每天重要的工作就是沟通协调,帮下属解决工作上的资源问题和部门间的配合问题。

7,碰头会议。每天下午下班前,利用二十分钟时间召开一个碰头会,听取各模块当日工作汇报,以及时发现问题、堵塞漏洞。

8,反思自省。每天,下班前应对一天的工作进行情景回放,进行自省和反思。吾日三省吾身,才能日清日高。

9,工作备忘。重要的工作事项,或一些新思路,要及时登记工作备忘,以免疏漏造成损失。

10,明日计划。每天下班前十分钟,要制定出明日的工作计划,以便第二天进行工作安排,这样才能有条不紊。

人性是趋利的,没有不愿意干活的人,只是你的薪酬激励不到位!

那么,怎样设计薪酬模式才能激发员工的斗志,让他为自己拼命地干?同时还不增加企业的成本?

1、给员工更多的持续增加收入的渠道和机会。2、员工拿的工资,取决于他创造的结果。3、将员工的利益和企业的利益捆绑在一起,企业利润越高,员工工资越高。

给大家分享一种体现企业和员工共赢的薪酬模式——KSF增值加薪法,大家可以结合自己企业的实际情况采用!

这种模式,其特点就是,打破固定薪酬模式,员工的工资收入与他的价值贡献全面融合,让员工为自己干、为自己加薪,全面激发员工创造显性价值的热情。

所以做薪酬模式的激励性非常重要,为了避免高层占据高位不做事,我们必须抛弃传统的薪酬模式,改用用KSF薪酬模式。

即通过对员工创造的结果和价值进行量化,与员工所得的报酬进行深度挂钩,强调以“结果”和“价值”换取报酬为导向的企业文化和薪酬全绩效模式。

KSF是一种能体现管理者和企业共赢的模式,它一般会给管理者开拓6-8个绩效激励渠道,并在每一个渠道上找到平衡点,超出平衡点即做出分配细节,这个模式分配的不是企业既有的利润,而是一种超价值的分配,要求管理者拿出好的结果、效果与企业进行价值交易,企业赢得的是高绩效、管理者员工赢得的是高收入。

案例分析:

连锁店店长,他的工资该怎么发呢?

李经理是一家餐饮连锁店的店长,底薪5000,加上销售额提成每个月七八千的样子。

自年初开始,门店销售额每况愈下,李经理的工资自然也受到影响。不仅如此,员工努力得不到结果,心态也发生了改变,不少员工已经离职,现有员工大多抱着混日子的想法。即使他本人再拼命,也没法扭转形势,因此有了离职的打算。

老板找到了我们,让我们帮忙设计KSF薪酬方案:

在KSF的薪酬模式下,李经理的薪资有了哪些改变呢?

1、加薪方式从单一的销售额变为与门店利益有关的8个指标

除销售额外,门店毛利率、人创销售、客户满意度等等,都成为李经理的加薪方式

2、加薪标准降低

之前要获得加薪,李经理只能提高销售额,但在大环境影响下,李经理能做的是非常有限的。

现在我们在每个指标上选定了一个平衡点,对李经理来说,这个平衡点是不难达到的,只要他做到了,就能获得加薪。

对公司来说,达到平衡点就意味着比过去做的好,因此不会增加成本负担。

3、加薪方案更加具体

销售额每增加400元,奖励1.5元,每减少400元,少发1.5元;

毛利率每多0.1%,奖励7元,每少0.1%,少发7元;

人创销售,每多55,奖励4元,每少55,少发4元;

实行KSF方案之后,

1、王经理本人更有动力了,在培训员工、节约成本上做出了更大的贡献。

2、门店员工流失减少,员工积极性大幅增加。

3、餐厅销售额虽没有大幅改变,但由于成本费用减少,人效提升,餐厅利润反而上升了20%。

KSF增值加薪法,对员工而言,给其提供了没有上限的加薪模式,员工可以凭借自己的努力,创造更好的结果,为自己加薪。

培养销售合伙人,激活销售团队,日常管理五步法

管理销售团队的五步法则

一、目标驱动法则

在选人的时候,就应该选择目标导向型的人才。在日常管理中,要特别强调销售人员的目标意识。

从一线销售员、销售经理,到销售总监都要有清晰的目标意识。每个月的目标必须分成三级目标。第一是保底目标,第二是平衡目标,第三是冲刺目标,这三级目标要对应不同的激励。

如果完成保底目标,保底目标的提成和平衡目标的提成,是有差别的。如果是完成了冲刺目标,就可以继续放大提成。

如果没有完成保底目标,则需要受到相应的处罚。保底目标就是团队的生死线,对员工来讲,如果没有完成保底目标,就必须在每个月的目标大会上,承担相应的责任。

强化目标意识是管理销售团队的起点,除了要把目标制定出来,在过程管理中,还要有目标看板。

也就是说,用目标及时播报机制,让所有员工及时播报自己成交的业绩,今天出了多少单,都要在看板上及时公开。如果是全国性的销售区域,就用微信群来播报。

播报机制会在无形中鞭策所有销售人员,在播报机制中实行红黑榜,排名靠前的实行红榜制,排名落后的团队或者个人实行黑榜制。

当员工看到自己的排名靠前,心里就有成就感。看到自己的排名靠后,就会有紧迫感和危机感,这就是目标管理的起点。

打开网易新闻 查看更多图片 

二、PK竞争法则

销售团队要尽可能实行小组化,每个小组都必须有组名、口号。

在一些优秀销售公司里,销售团队都是分成几个小组,每个小组都有自己的队名,比如说亮剑队、飞虎队、奋斗队等等。

除了分小组,还要形成小组的对抗,也就是形成激励和竞争。通过竞争来产生活力。在公司的看板上,要及时播报各个小组的业绩目标,以及实时销售数据。

未来实行“阿米巴+合伙人管理模式”,还可以把这些销售小组实行小阿米巴化,每个小阿米巴的负责人,变成合伙人。

整个营销中心又可以实行二级阿米巴,大阿米巴也实行独立核算。营销中心的营销总监必须成为大阿米巴的合伙人。让所有销售为公司干,就等于为自己干,告别打工者心态,激发他们源源不断的动力。

三、会议管理法则

销售团队必须开哪些会?如果你是电销型公司,就必须开好早会、中会、晚会,在这些会议上及时激励员工,对当天表现优秀的员工进行表扬,用品牌分管理法激励优秀员工。

会议不仅可以用来管控目标的进程,更重要的是要激励员工,让员工更有干劲。

如果你是全国发散型的销售公司,开不了晨会,就必须有日播报机制。让各地业务员每天都在微信群里面播报销售业绩。

销售团队千万不能唯业绩论,但是业绩导向是必须的。在考核机制上,要把过程管控指标纳入进来。没有过程的管控,就不可能有好的结果。

四、每周一课

销售公司必须注重员工的技能提升,每周至少要给员工做一次培训。

可以是举行成功经验分享会,让做业绩做得好员工,上台分享成功经验。再一个就是,每周组织员工学习职业化的知识。

学习机制也要纳入到员工的考核中,这个考核指标叫学习成长指标,在100分的考核里要占到5分。

如果员工没有按计划学习,就会扣掉这5分。这就是强化员工的学习成长,营造好的学习氛围。

坚持这样做,会大大提升员工的执行力,以及职业素养。但凡优秀的公司,都会做好相应的学习培训,把学习变成机制,打造学习型组织。

五、月度表彰原则

管理销售团队,节奏要快,速度要高。

每个月要及时总结、及时表彰。上个月每个小组的冠军分别是谁?哪个小组是冠军小组?及时表彰优秀员工和优秀团队,激励士气。

开月度总结会的同时,还要做下个月的目标启动会。各个小组都要上台公布自己的三级目标。我们这个小组,保底目标是多少万,平衡目标是多少万,冲刺目标是多少万,都必须公开承诺。

让销售团队每个月都进入打仗的节奏,不要松懈下来。销售团队必须有紧迫感、危机感,所以必须及时做好激励工作,每个月按时开表彰会和目标启动会。

企业管理

一说起彼得·德鲁克。很多人都知道。他被誉为“现代管理学之父”,其著作对管理学者和企业家们影响颇深,各类商业管理课程也将其思想奉为圭臬。他的《管理的实践》、《卓有成效的管理者》、《管理:任务、责任和实践》等书,畅销几十年,经久不衰。

通用电气前首席执行官杰克·韦尔奇说:“全世界的管理者都应该感谢这个人,因为他贡献了毕生的精力,来理清我们社会中人的角色和组织机构的角色,我认为彼得·德鲁克比任何其他人都更有效地做到了这一点。”那么,格鲁克有哪些管理思想呢?

一:德鲁克谈管理

1,管理的本质是为了提高效率。而管理的最高境界是不用管理。

2,管理是一种实践,其本质不在于“知”而在于“行”;其验证不在于逻辑,而在于成果;其唯一权威就是成就。

3,领导和管理是两个截然不同的概念,管理者的工作是计划与预算、组织及配置人员、控制并解决问题,其目的是建立秩序; 领导者的工作是确定方向、整合相关者、激励和鼓舞员工,其目的是产生变革。

4,管理就是界定企业的使命,并激励和组织人力资源去实现这个使命。界定使命是企业家的任务,而激励与组织人力资源是领导力的范畴,二者的结合就是管理。

5,如果你的答案是:“不做这些事也没有什么影响。”应当学着说“不”,不管你是用很委婉的方式还是严词以对,总之要说“不”。

6,有效的管理源自尊重个人的个性、尊严。

二:德鲁克谈管理者

1,管理者的任务不是去改变人,而在于运用每一个人的才干。

2,管理者,就是把事情做得正确的人。企业家,就是做正确的事情的人。

3,某些管理者有个常犯的毛病,即专家式的傲慢。认为别人都应该懂得他们的术语,并按照他的方式来思维。

4,卓有成效的管理者,具有6个特征:品格,沟通,聚焦,决策,目标,贡献。

5,管理者就是如何利用别人的长处来实现自己目标的人。至于说这个人是好是坏、如何把这个人教育成一个有理想的人,那是上帝的事情。

6,首先要说的是,CEO要承担责任,而不是“权力”。

7,领导者的唯一定义就是其后面有追随者。没有追随者,就不会有领导者。

8,管理者应该诚恳的询问:我常做哪些既浪费你时间又没有效果的事情?

9,我们该知道运用自己上司的长处,这也正是下属工作卓有成效的关键。,

很多企业在考虑设计业务员薪酬的时候,一般都是走着(总收入=底薪+提成)线路,这方式还是特别单一、激励性不够丰富,对于业务而言,激励性自然动力也是不够级全面的。另外,这种底薪加提成,激励性还是比较强,但是却存在以下缺陷:

1、底薪高、提成低;

会滋生员工偷懒心理,拿到底薪就行,根本就不去努力干业绩。底薪越高,员工越容易偷懒,正所谓高薪养懒。

2、底薪低、提成高;

偷懒是人的天性,每个人都会偷懒。在初始阶段,业务员很勤奋,拼命干业绩,当收入达到他心里价位的时候,他就会选择偷懒,毕竟企业不是自己的,不会像老板那样拼命干。因此员工和老板没有达成利益趋同思维统一。

如何让业务员和企业共成长共发展?

能者多劳的结果,往往不是多劳多得,而是多劳多责。

你能干,你老实,那你就多做一点,是你的,不是你的,统统都让你来做,谁让你能干,能把活做好呢?

人尽其才,物尽其用,这本来也没什么错,但一切只让干活,不让吃肉的行为都是耍流氓。

只有不断增加的劳动量,酬劳却一点不增加,即使加薪也少得可怜,这就扯淡了。

会员运营方案纲要和培训

一、会员运营目标:

1.提高会员量以及会员活跃度。
2.将会员更好的分级分类。
3.针对不同类型的会员做精准营销

二、目标关键字定义

1.会员量
提高会员量包括提高/降低以下指标:

  • i. 会员增长/会员增长速度
  • ii. 有效会员量/有效会员增量
  • iii. 会员留存率/流失率
  • iv. 核心用户(更多的订单和交易额)/一般会员
    RFM模型
    以月为计算周期,每月下单会员为对象,根据会员最近一次消费(Recency)、消费频率(Frequency)、消费金额(Monetary)三个维度进行细分会员群体。

    将其中几类会员整合后最终将会员划分为四类:最好会员(最近消费的时间短,经常购买且购买金额大的会员)、重点突破会员(不经常购买但购买金额大的会员)、重点维护会员(经常购买但购买金额小的会员)、一般会员(最近消费时间长,不经常购买且购买金额小的会员)

    划分标准:
    1)R小于等于15天,F大于等于8次,M大于等于平均客单价为最好会员
    2)F小于8次,M大于等于平均客单价为重点突破会员
    3)F大于等于8次,M小于平均客单价为重点维护会员
    4)R大于15天,F小于8次,M小于于平均客单价为一般会员

  • v. 种子用户(更多的分享和推荐)
    • 关于商品的图文消息、测试消息等的转发数。(有一定误差)
    • 要求技术对登陆用户的分享次数做出统计,以便筛选出乐于分享的用户,给予特惠、引导分享,并将其转化为核心用户,如奖章。

2.会员活跃度

  • i. 轻度活跃行为(根据轻-重排列):
    • a) 阅读资讯(微信、海报、传单) 统计方法:
    • b) 登陆网站(或通过链接、二维码直接进入官网某页)
      统计方法:取cnzz的数据,PV 和平均访问深度,作为登陆网站的轻度活跃
  • ii. 中度活跃行为(根据轻-重排列):
    • a) 在网站使用“搜索”等功能 统计方法:
      • 1.在cnzz查看【XX 】(手机版)页面的访问次数。(有一定误差)
    • b) 将商品添加进“购物车” 统计方法:
      • 1.在cnzz查看【XX】(手机版)页面的访问次数。(有一定误差)
      • 2.要求技术对重要的按钮增加统计次数,“搜索”和“购物车”按钮分别被点击了多少次。
    • c) 分享/推荐商品、页面、活动等给好友 统计方法:
      1.暂不能统计,要求技术加入多个可以“分享”或“推荐”的按钮,并可以统计其次数频率。
  • iii. 核心活跃行为(主要为两类,【互动】和【订单】,目前能统计到大部分为核心订单活跃):
    • 通过微信群、公众号、客服电话等主动参与活动,或主动反馈的建议。 统计方法:由于此类用户较少,采取手动统计。统计在《互动用户统计表》内
    • 完成购物流程。 统计方法:通过后台订单即可统计 注:
      • 1.一个活跃会员有多种表现形式。(包括以上情形,但不限于)
      • 2.以上指标的单位有 次数(登陆、下单、分享、参与活动等)和 时常 (登陆、停留页面等)
      • 3.会员的活跃度是一个较长期的表现,理想状况下,一个会员的活跃度,应该是以“一定时间内,以上不同事件的触发总数/时长,再根据加权平均后取得”

3.分级分类方式

  • i. 分类方式:
    • a) 基本会员属性(以基本-高级排列):年龄、性别、职业、小区(企业)、收入、兴趣爱好
    • b) 会员活跃属性:
      • i. 活跃渠道:
        1. 【媒体】查看资讯、活动(目前仅有微信公众号)-
        2. 【官网】登陆官网 – 查看商品或者促销页
        3. 【线下】逛门店、与店员聊天
      • ii. 活跃方式:
        1. 被动浏览(如基本只看一下公众号推送的咨询、商品、专区)
        2. 主动查阅(如查看页面较多但停留较短,喜欢逛、了解等)
        3. 目的性明确(如频繁利用“搜索栏”,或主动问询是否有XX商品等)
        4. 习惯性下单(可能是经常购买食材类做饭的用户)
        5. 赠品型下单(如多次订单,每次订单金额都较大等)
      • iii. 活跃程度:根据【会员活跃度指标】的时常、次数等综合判断分级,大约分为4级:
        1. 一次性会员(不登陆、不互动,可能仅仅是在推广活动中,为了获取小礼品而注册的)
        2. 沉默会员(偶尔查看资讯,偶尔浏览商品和活动,不互动,不下单)
        3. 一般会员(有时查看资讯和活动,偶尔下单)
        4. 忠诚会员/潜力忠诚会员(经常查看资讯、活动,有下单的习惯/多次参与活动等)
  • ii. 分级方式:
    • a) 会员的消费
    • b) 会员的活跃度
    • c) 会员的传播性应根据以上3个层次来综合分级。
  • iii. 分类模板:
    以活跃度为核心进行分级.

4.精准营销:

三、会员运营步骤:

漏斗模型
将目标拆分并概括为修改后的“AARRR”转化漏斗模型,被导入的一部分用户会在某个环节流失,而剩下的用户则继续下去,直到实现最终的转化和价值。(暂只考虑前4步)。

  • A. 获取用户
    吸引流量/用户量增长 【线上】 /让潜在客户首次注册(线下)
  • B. 激发活跃
    引导用户完成某些“指定动作”,如注册(线下推广用户)。其他制定动作待定
  • C. 提高留存
    留住一个老用户的成本要低于获取新用户的成本。降低流失,让老用户(完成一次活跃激发的用户更好的留下来,再次完成“指定动作”,如登陆、浏览、下单)
  • D. 传播推荐
    人们更容易相信来自亲朋、有影响力的人士(如知名人士、公司领导等)的推荐。
  • E. 增加收入

四、具体方法概述

  • A. 获取用户方法
    • i. 自然增长(在内容中添加更多的可供传播的内容,如引导分享等)
    • ii. 线上活动增长
    • iii. 线下推广增长
  • B. 激发活跃方法
    • i. 用户补贴
    • ii. 游戏化
    • iii. 诱饵效应
    • iv. 降低活跃门槛(优化流程和性能)
    • v. 脚本化自动运营(托)
  • C. 提高留存方法
    • i. 唤醒机制
      • a) 告知进展
      • b) 提供奖励
      • c) 个性化推荐
    • ii. 有损服务
    • iii. 社交维系
  • D. 传播推荐方法
    • i.活动传播(使用优惠、赠品等方式推广)
    • ii. 病毒营销(K因子、循环周期)

实现方法概括:

  • 内容运营:
    内容运营为传播、转化的核心。内容运营一般异步的,往往是先发布内容,用户后阅读、进行行为。

    • 1.官网商品页、活动页、着陆页(如扫二维码、点击群内链接,直接进入某专题页
    • 2.微信服务号、
    • 3.订阅号的图文消息、商品消息。
  • 渠道运营:
    渠道运营这里指的是可以直接联系到用户的方法。可以用于较为重要的消息通知,如邀请老用户参与互动、回馈核心用户、调查某非常需要的数据等。

    • 1.客服电话回访
    • 2.群短信通知
  • 社群运营
    社群运营同步性较好、及时性较强,一般能更快的获得用户的回馈,可以有效地提高某阶段的转化率。缺陷是如果有投诉,在社群内容易引起波动,使观望用户退却。

    • 1.微信
    • 2.QQ群
  • 活动运营
    通过各种优惠活动,能够促进各个环节的用户积极性,用户回馈明确。尤其在于新用户增长方面

    • 1.线上活动(官网、公众号、朋友圈转发等)
    • 2.线下活动(联合门店、市场)

TensorFlow 深度学习笔记 卷积神经网络

Convolutional Networks

deep dive into images and convolutional models

Convnet

BackGround

  • 人眼在识别图像时,往往从局部到全局
  • 局部与局部之间联系往往不太紧密
  • 我们不需要神经网络中的每个结点都掌握全局的知识,因此可以从这里减少需要学习的参数数量

Weight share

  • 但这样参数其实还是挺多的,所以有了另一种方法:权值共享

Share Parameters across space

  • 取图片的一小块,在上面做神经网络分析,会得到一些预测
  • 将切片做好的神经网络作用于图片的每个区域,得到一系列输出
  • 可以增加切片个数提取更多特征
  • 在这个过程中,梯度的计算跟之前是一样的

Concept

  • Patch/Kernel:一个局部切片
  • Depth: 数据的深度,图像数据是三维的,长宽和RGB,神经网络的预测输出也属于一维
  • Feature Map:每层Conv网络,因为它们将前一层的feature映射到后一层(Output map)

  • Stride: 移动切片的步长,影响取样的数量
  • 在边缘上的取样影响Conv层的面积,由于移动步长不一定能整除整张图的像素宽度,不越过边缘取样会得到Valid Padding, 越过边缘取样会得到Same Padding
  • Example

  • 用一个3×3的网格在一个28×28的图像上做切片并移动
  • 移动到边缘上的时候,如果不超出边缘,3×3的中心就到不了边界
  • 因此得到的内容就会缺乏边界的一圈像素点,只能得到26×26的结果
  • 而可以越过边界的情况下,就可以让3×3的中心到达边界的像素点
  • 超出部分的矩阵补零就行

Deep Convnet

在Convnet上套Convnet,就可以一层一层综合局部得到的信息

OutPut

将一个deep and narrow的feature层作为输入,传给一个Regular神经网络

Optimization

Pooling

将不同Stride的卷积用某种方式合并起来,节省卷积层的空间复杂度。

  • Max Pooling
    在一个卷积层的输出层上取一个切片,取其中最大值代表这个切片
  • 优点
  • 不增加需要调整的参数
  • 通常比其他方法准确
  • 缺点:更多Hyper Parameter,包括要取最值的切片大小,以及去切片的步长

LENET-5, ALEXNET

  • Average Pooling
    在卷积层输出中,取切片,取平均值代表这个切片

1×1 Convolutions

在一个卷积层的输出层上,加一个1×1的卷积层,这样就形成了一个小型的神经网络。

  • cheap for deeper model
  • 结合Average Pooling食用效果更加

    Inception

    对同一个卷积层输出,执行各种二次计算,将各种结果堆叠到新输出的depth方向上

TensorFlow卷积神经网络实践

数据处理

  • dataset处理成四维的,label仍然作为one-hot encoding
    def reformat(dataset, labels, image_size, num_labels, num_channels):
    dataset = dataset.reshape(
        (-1, image_size, image_size, num_channels)).astype(np.float32)
    labels = (np.arange(num_labels) == labels[:, None]).astype(np.float32)
    return dataset, labels
  • 将lesson2的dnn转为cnn很简单,只要把WX+b改为conv2d(X)+b即可
  • 关键在于conv2d

`conv2d

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

给定四维的inputfilter tensor,计算一个二维卷积

Args:
  • input: A Tensor. type必须是以下几种类型之一: halffloat32float64.
  • filter: A Tensor. type和input必须相同
  • strides: A list of ints.一维,长度4, 在input上切片采样时,每个方向上的滑窗步长,必须和format指定的维度同阶
  • padding: A string from: "SAME", "VALID". padding 算法的类型
  • use_cudnn_on_gpu: An optional bool. Defaults to True.
  • data_format: An optional string from: "NHWC", "NCHW", 默认为"NHWC"
    指定输入输出数据格式,默认格式为”NHWC”, 数据按这样的顺序存储:
    [batch, in_height, in_width, in_channels]
    也可以用这种方式:”NCHW”, 数据按这样的顺序存储:
    [batch, in_channels, in_height, in_width]
  • name: 操作名,可选.
Returns:

Tensor. type与input相同

Given an input tensor of shape [batch, in_height, in_width, in_channels]
and a filter / kernel tensor of shape
[filter_height, filter_width, in_channels, out_channels]

conv2d实际上执行了以下操作:

  1. 将filter转为二维矩阵,shape为
    [filter_height * filter_width * in_channels, output_channels].
  2. 从input tensor中提取image patches,每个patch是一个virtual tensor,shape[batch, out_height, out_width, filter_height * filter_width * in_channels].
  3. 将每个filter矩阵和image patch向量相乘

具体来讲,当data_format为NHWC时:

output[b, i, j, k] =
    sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *
                    filter[di, dj, q, k]

input 中的每个patch都作用于filter,每个patch都能获得其他patch对filter的训练
需要满足strides[0] = strides[3] = 1. 大多数水平步长和垂直步长相同的情况下:strides = [1, stride, stride, 1].
– – –

  • 然后再接一个WX+b连Relu连WX+b的全连接神经网络即可

Max Pooling

在tf.nn.conv2d后面接tf.nn.max_pool,将卷积层输出减小,从而减少要调整的参数

max_pool

tf.nn.max_pool(value, ksize, strides, padding, data_format='NHWC', name=None)

Performs the max pooling on the input.

Args:
  • value: A 4-D Tensor with shape [batch, height, width, channels] and
    type tf.float32.
  • ksize: A list of ints that has length >= 4. 要执行取最值的切片在各个维度上的尺寸
  • strides: A list of ints that has length >= 4. 取切片的步长
  • padding: A string, either 'VALID' or 'SAME'. padding算法
  • data_format: A string. ‘NHWC’ and ‘NCHW’ are supported.
  • name: 操作名,可选
Returns:

Tensor with type tf.float32. The max pooled output tensor.

十大最热门人工智能技术

人工智能(AI)技术市场正在蓬勃发展。除了大肆炒作和媒体的日益关注外,众多初创公司和互联网巨头都在竞相加入进来,企业的投资力度和采用程度随之大幅提升。Narrative Science公司在去年的一项调查发现,38%的企业已经在使用人工智能技术,到2018年这个比例有望增长到62%。弗雷斯特研究公司预测,2017年人工智能领域的投入将比2016年猛增300%。IDC公司估计,人工智能市场将从2016年的80亿美元,增加到2020年的470亿美元。

“人工智能”是1955年杜撰的一个术语,用来描述计算机科学领域的一个新兴分支学科。如今,人工智能包括一系列广泛的技术和工具,有些久经时间的考验,而另一些还比较新颖。为了帮助了解什么是热门技术、什么不是热门技术,弗雷斯特研究公司刚刚发布了关于人工智能的TechRadar报告(面向应用软件开发专业人员),该报告详细深入地分析了企业应该考虑采用、以支持人类决策的13种技术。

基于弗雷斯特研究公司的分析结果,本人在下面列出了10种最热门的人工智能技术:

  1. 自然语言生成:利用计算机数据生成文本。目前应用于客户服务、报告生成以及总结商业智能洞察力。代表性厂商包括:Attivio、Cambridge Semantics、Digital Reason、Lucidworks、Narrative Science和SAS。
  2. 语音识别:将人类语音转录和转换成对计算机应用软件来说有用的格式。目前应用于交互式语音应答系统和移动应用领域。代表性厂商包括:NICE、Nuance Communications、OpenText和Verint Systems。
  3. 虚拟代理:弗雷斯特公司声称,“虚拟代理可谓是媒体界目前竞相报道的对象。”从简单的聊天机器人,到可以与人类进行交际的高级系统,不一而足。目前应用于客户服务和支持以及充当智能家居管理器。代表性厂商包括:亚马逊、苹果、Artificial Solutions、 Assist AI、Creative Virtual、谷歌、IBM、IPsoft、微软和Satisfi。
  4. 机器学习平台:不仅提供了设计和训练模型,并将模型部署到应用软件、流程及其他机器的计算能力,还提供了算法、应用编程接口(API)、开发工具包和训练工具包。目前应用于一系列广泛的企业应用领域,主要涉及预测或分类。代表性厂商包括:亚马逊、Fractal Analytics、谷歌、H2O.ai、微软、SAS和Skytree。
  5. 针对人工智能优化的硬件:这是专门设计的图形处理单元(GPU)和设备,其架构旨在高效地运行面向人工智能的计算任务。目前主要在深度学习应用领域发挥作用。代表性厂商包括:Alluviate、克雷、谷歌、IBM、英特尔和英伟达。
  6. 决策管理:引擎将规则和逻辑嵌入到人工智能系统,并用于初始的设置/训练和日常的维护和调优。这是一项成熟的技术,应用于一系列广泛的企业应用领域,协助或执行自动决策。代表性厂商包括:Advanced Systems Concepts、Informatica、Maana、Pegasystems和UiPat。
  7. 深度学习平台:一种特殊类型的机器学习,包括拥有多个抽象层的人工神经网络。目前主要应用于由很庞大的数据集支持的模式识别和分类应用领域。代表性厂商包括:Deep Instinct、Ersatz Labs、Fluid AI、MathWorks、Peltarion、 Saffron Technology和Sentient Technologies。
  8. 生物特征识别技术:能够支持人类与机器之间更自然的交互,包括但不限于图像和触摸识别、语音和身体语言。目前主要应用于市场研究。代表性厂商包括:3VR、Affectiva、Agnitio、FaceFirst、Sensory、Synqera和Tahzoo。
  9. 机器人流程自动化:使用脚本及其他方法,实现人类操作自动化,从而支持高效的业务流程。目前应用于人类执行任务或流程成本太高或效率太低的地方。代表性厂商包括:Advanced Systems Concepts、Automation Anywhere、Blue Prism、UiPath和WorkFusion。
  10. 文本分析和NLP:自然语言处理(NLP)使用和支持文本分析,为此它借助统计方法和机器学习方法,为理解句子结构及意义、情感和意图提供方便。目前应用于欺诈检测和安全、一系列广泛的自动化助理以及挖掘非结构化数据等领域。代表性厂商包括:Basis Technology、Coveo、Expert System、Indico、Knime、Lexalytics、Linguamatics、Mindbreeze、Sinequa、Stratifyd和Synapsify。

当然,如今公司企业可以从人工智能技术获得诸多好处,不过据弗雷斯特研究公司在去年进行的一项调查显示,采用人工智能方面也面临一些障碍,未打算投入于人工智能的公司表达了这些顾虑:

没有明确的商业理由 42%
不清楚人工智能可以用在什么地方 39%
缺乏所需的技能 33%
首先需要投入资金,以更新改造数据管理平台 29%
没有相应预算 23%
对于实施人工智能系统需要什么心里没底 19%
人工智能系统并没有得到验证 14%
没有合适的流程或治理 13%
人工智能尽是炒作,还没有落地 11%
自己没有所需的数据,或无法访问所需的数据 8%
不清楚人工智能是什么意思 3%

弗雷斯特研究公司得出结论,一旦企业克服了上述障碍,它们势必会得益于人工智能在面向客户的应用环境下加快转型,并编织成一个高度互联的企业信息网络。

免责申明:本站所有内容均来自网络,我们对文中观点保持中立,对所包含内容的准确性,可靠性或者完整性不提供任何明示或暗示的保证,请仅作参考。若有侵权,请联系删除。

BP神经网络

神经网络的计算过程

神经网络结构如下图所示,最左边的是输入层,最右边的是输出层,中间是多个隐含层,隐含层和输出层的每个神经节点,都是由上一层节点乘以其权重累加得到,标上“+1”的圆圈为截距项b,对输入层外每个节点:Y=w0*x0+w1*x1+…+wn*xn+b,由此我们可以知道神经网络相当于一个多层逻辑回归的结构。

图片描述

(图片来自UFLDL Tutorial
算法计算过程:输入层开始,从左往右计算,逐层往前直到输出层产生结果。如果结果值和目标值有差距,再从右往左算,逐层向后计算每个节点的误差,并且调整每个节点的所有权重,反向到达输入层后,又重新向前计算,重复迭代以上步骤,直到所有权重参数收敛到一个合理值。由于计算机程序求解方程参数和数学求法不一样,一般是先随机选取参数,然后不断调整参数减少误差直到逼近正确值,所以大部分的机器学习都是在不断迭代训练,下面我们从程序上详细看看该过程实现就清楚了。

神经网络的算法程序实现

神经网络的算法程序实现分为初始化、向前计算结果,反向修改权重三个过程。

1. 初始化过程

由于是n层神经网络,我们用二维数组layer记录节点值,第一维为层数,第二维为该层节点位置,数组的值为节点值;同样,节点误差值layerErr也是相似方式记录。用三维数组layer_weight记录各节点权重,第一维为层数,第二维为该层节点位置,第三维为下层节点位置,数组的值为某节点到达下层某节点的权重值,初始值为0-1之间的随机数。为了优化收敛速度,这里采用动量法权值调整,需要记录上一次权值调整量,用三维数组layer_weight_delta来记录,截距项处理:程序里将截距的值设置为1,这样只需要计算它的权重就可以了,

2. 向前计算结果

采用S函数1/(1+Math.exp(-z))将每个节点的值统一到0-1之间,再逐层向前计算直到输出层,对于输出层,实际上是不需要再用S函数的,我们这里将输出结果视为0到1之间的概率值,所以也采用了S函数,这样也有利于程序实现的统一性。

3. 反向修改权重

神经网络如何计算误差,一般采用平方型误差函数E,如下:

图片描述

也就是将多个输出项和对应目标值的误差的平方累加起来,再除以2。实际上逻辑回归的误差函数也是这个,至于为什么要用这个函数来计算误差,它从数学上的合理性是什么,怎么得来的,这个我建议程序员们不想当数学家的话,先不去深究了,现在我们要做的是如何把这个函数E误差取它的最小值,需要对其进行求导,如果有些求导数学基础的话,倒可以尝试去推导下如何从函数E对权重求导得到下面这个公式的:

图片描述

不会推导也没有关系,我们只需要运用结果公式就可以了,在我们的程序里用layerErr记录了E对权重求导后的最小化误差,再根据最小化误差去调整权重。

注意这里采用动量法调整,将上一次调整的经验考虑进来,避免陷入局部最小值,下面的k代表迭代次数,mobp为动量项,rate为学习步长:

Δw(k+1) = mobp*Δw(k)+rate*Err*Layer
也有很多使用下面的公式,效果上的差别不是太大:

Δw(k+1) = mobp*Δw(k)+(1-mobp)rate*Err*Layer
为了提升性能,注意程序实现是在一个while里面同时计算误差和调整权重,先将位置定位到倒数第二层(也就是最后一层隐含层)上,然后逐层反向调整,根据L+1层算好的误差来调整L层的权重,同时计算好L层的误差,用于下一次循环到L-1层时计算权重,以此循环下去直到倒数第一层(输入层)结束。

小结

在整个计算过程中,节点的值是每次计算都在变化的,不需要保存,而权重参数和误差参数是需要保存的,需要为下一次迭代提供支持,因此,如果我们构思一个分布式的多机并行计算方案,就能理解其他框架中为什么会有一个Parameter Server的概念。

多层神经网络完整程序实现

下面的实现程序BpDeep.java可以直接拿去使用,也很容易修改为C、C#、Python等其他任何语言实现,因为都是使用的基本语句,没有用到其他Java库(除了Random函数)。以下为原创程序,转载引用时请注明作者和出处。

import java.util.Random;
public class BpDeep{
    public double[][] layer;//神经网络各层节点
    public double[][] layerErr;//神经网络各节点误差
    public double[][][] layer_weight;//各层节点权重
    public double[][][] layer_weight_delta;//各层节点权重动量
    public double mobp;//动量系数
    public double rate;//学习系数

    public BpDeep(int[] layernum, double rate, double mobp){
        this.mobp = mobp;
        this.rate = rate;
        layer = new double[layernum.length][];
        layerErr = new double[layernum.length][];
        layer_weight = new double[layernum.length][][];
        layer_weight_delta = new double[layernum.length][][];
        Random random = new Random();
        for(int l=0;l<layernum.length;l++){
            layer[l]=new double[layernum[l]];
            layerErr[l]=new double[layernum[l]];
            if(l+1<layernum.length){
                layer_weight[l]=new double[layernum[l]+1][layernum[l+1]];
                layer_weight_delta[l]=new double[layernum[l]+1][layernum[l+1]];
                for(int j=0;j<layernum[l]+1;j++)
                    for(int i=0;i<layernum[l+1];i++)
                        layer_weight[l][j][i]=random.nextDouble();//随机初始化权重
            }   
        }
    }
    //逐层向前计算输出
    public double[] computeOut(double[] in){
        for(int l=1;l<layer.length;l++){
            for(int j=0;j<layer[l].length;j++){
                double z=layer_weight[l-1][layer[l-1].length][j];
                for(int i=0;i<layer[l-1].length;i++){
                    layer[l-1][i]=l==1?in[i]:layer[l-1][i];
                    z+=layer_weight[l-1][i][j]*layer[l-1][i];
                }
                layer[l][j]=1/(1+Math.exp(-z));
            }
        }
        return layer[layer.length-1];
    }
    //逐层反向计算误差并修改权重
    public void updateWeight(double[] tar){
        int l=layer.length-1;
        for(int j=0;j<layerErr[l].length;j++)
            layerErr[l][j]=layer[l][j]*(1-layer[l][j])*(tar[j]-layer[l][j]);

        while(l-->0){
            for(int j=0;j<layerErr[l].length;j++){
                double z = 0.0;
                for(int i=0;i<layerErr[l+1].length;i++){
                    z=z+l>0?layerErr[l+1][i]*layer_weight[l][j][i]:0;
                    layer_weight_delta[l][j][i]= mobp*layer_weight_delta[l][j][i]+rate*layerErr[l+1][i]*layer[l][j];//隐含层动量调整
                    layer_weight[l][j][i]+=layer_weight_delta[l][j][i];//隐含层权重调整
                    if(j==layerErr[l].length-1){
                        layer_weight_delta[l][j+1][i]= mobp*layer_weight_delta[l][j+1][i]+rate*layerErr[l+1][i];//截距动量调整
                        layer_weight[l][j+1][i]+=layer_weight_delta[l][j+1][i];//截距权重调整
                    }
                }
                layerErr[l][j]=z*layer[l][j]*(1-layer[l][j]);//记录误差
            }
        }
    }

    public void train(double[] in, double[] tar){
        double[] out = computeOut(in);
        updateWeight(tar);
    }
}

一个运用神经网络的例子

最后我们找个简单例子来看看神经网络神奇的效果。为了方便观察数据分布,我们选用一个二维坐标的数据,下面共有4个数据,方块代表数据的类型为1,三角代表数据的类型为0,可以看到属于方块类型的数据有(1,2)和(2,1),属于三角类型的数据有(1,1),(2,2),现在问题是需要在平面上将4个数据分成1和0两类,并以此来预测新的数据的类型。

图片描述

我们可以运用逻辑回归算法来解决上面的分类问题,但是逻辑回归得到一个线性的直线做为分界线,可以看到上面的红线无论怎么摆放,总是有一个样本被错误地划分到不同类型中,所以对于上面的数据,仅仅一条直线不能很正确地划分他们的分类,如果我们运用神经网络算法,可以得到下图的分类效果,相当于多条直线求并集来划分空间,这样准确性更高。

图片描述

下面是这个测试程序BpDeepTest.java的源码:

import java.util.Arrays;
public class BpDeepTest{
    public static void main(String[] args){
        //初始化神经网络的基本配置
        //第一个参数是一个整型数组,表示神经网络的层数和每层节点数,比如{3,10,10,10,10,2}表示输入层是3个节点,输出层是2个节点,中间有4层隐含层,每层10个节点
        //第二个参数是学习步长,第三个参数是动量系数
        BpDeep bp = new BpDeep(new int[]{2,10,2}, 0.15, 0.8);

        //设置样本数据,对应上面的4个二维坐标数据
        double[][] data = new double[][]{{1,2},{2,2},{1,1},{2,1}};
        //设置目标数据,对应4个坐标数据的分类
        double[][] target = new double[][]{{1,0},{0,1},{0,1},{1,0}};

        //迭代训练5000次
        for(int n=0;n<5000;n++)
            for(int i=0;i<data.length;i++)
                bp.train(data[i], target[i]);

        //根据训练结果来检验样本数据
        for(int j=0;j<data.length;j++){
            double[] result = bp.computeOut(data[j]);
            System.out.println(Arrays.toString(data[j])+":"+Arrays.toString(result));
        }

        //根据训练结果来预测一条新数据的分类
        double[] x = new double[]{3,1};
        double[] result = bp.computeOut(x);
        System.out.println(Arrays.toString(x)+":"+Arrays.toString(result));
    }
}

小结

以上测试程序显示神经网络有很神奇的分类效果,实际上神经网络有一定优势,但也不是接近人脑的万能算法,很多时候它可能会让我们失望,还需要结合各种场景的数据大量运用去观察其效果。我们可以把1层隐含层改成n层,并调整每层节点数、迭代次数、学习步长和动量系数,以获得一个最优化的结果。但是很多时候n层隐含层的效果并不比1层有明显提升,反而计算更复杂耗时,我们对神经网络的认识还需要多实践多体会。

ZRender 一个实用的js图形库

Architecture

MVC核心封装实现图形仓库、视图渲染和交互控制:

  • Stroage(M) : shape数据CURD管理
  • Painter(V) : canvase元素生命周期管理,视图渲染,绘画,更新控制
  • Handler(C) : 事件交互处理,实现完整dom事件模拟封装
  • shape : 图形实体,分而治之的图形策略,可定义扩展
  • tool : 绘画扩展相关实用方法,工具及脚手架
  • animation : 动画扩展,提供promise式的动画接口和常用缓动函数

APACHE如何在一个站点绑定多个域名?

<VirtualHost *:80>
ServerAdmin i@test.com
DocumentRoot /www/test.com
ServerName www.test.com
</VirtualHost>

<VirtualHost *:80>
ServerAdmin i@test2.com
DocumentRoot /www/test2.com
ServerName www.test2.com
</VirtualHost>

<VirtualHost *:80>
ServerAdmin i@test3.com
DocumentRoot /www/test3.com
ServerName www.test3.com
</VirtualHost>