�gӭ���R�ЈD�W(w��ng) Ո(q��ng) | ע��(c��)

���] JAX��΢�־���

���ߣ������
�����磺�����]늳���������r(sh��)�g��2023-05-01
�_(k��i)���� 16�_(k��i) �(y��)��(sh��)�� 414
�� �D �r(ji��):¥90.9(7.0��) ���r(ji��)  ¥129.8 ��䛺�ɿ�����(hu��)�T�r(ji��)
����ُ(g��u)��܇(ch��) �ղ�
�_(k��i)������ ȫ��(ch��ng)���]
?�½������س���
���(l��i)���Ǖ�(sh��)����>

JAX��΢�־��� ���(qu��n)��Ϣ

JAX��΢�־��� ����(sh��)��ɫ

1.���w��JAX�ڿ�΢�־����I(l��ng)��đ�(y��ng)���������Ԅ�(d��ng)΢�ֵĻ���ԭ������(sh��)��(j��)�Y(ji��)��(g��u)�Լ����㷨��(y��u)������(j��ng)�W(w��ng)�j(lu��)�����̽�ģ������Ӌ(j��)����I(l��ng)���еđ�(y��ng)����

2.���߳�����DZ�����W(xu��)����W(xu��)Ժ����������Ϋ@�Ç�(gu��)�Ҹ�(j��ng)ِ�Ī�(ji��ng)�(xi��ng)�������S�����о���(j��ng)�(y��n)�͌�(sh��)�`������

3.ͨ�^(gu��)����(sh��)�ČW(xu��)��(x��)���x�߲��H��������J(r��n)AX�_(k��i)Դ��ܵ��÷���߀���������˽��΢�־��̵���Փ�͌�(sh��)�`������AI���g(sh��)�I(l��ng)���Б�(y��ng)����

4.��(n��i)������\�����·f�ɿ���Ԕ��(x��)��B���Ԅ�(d��ng)΢�ֵĻ���ԭ����JAX��(k��)�����Ժ͌�(sh��)�H��(ch��ng)���еđ�(y��ng)�÷�����

5.��x����(sh��)�����㌢�����˽�JAX�ڿ�΢�־����I(l��ng)��đ�(y��ng)�����������Ԅ�(d��ng)΢�ֵĻ���ԭ���͑�(y��ng)�ü�������������߹���Ч�ʲ���չš�I(y��)�l(f��)չǰ����

JAX��΢�־��� ��(n��i)�ݺ�(ji��n)��

����(sh��)��Google�_(k��i)�l(f��)��JAX�_(k��i)Դ��ܞ��d�w��Ԕ��(x��)��B��JAX�ڿ�΢�־����I(l��ng)��đ�(y��ng)�������w�����Ԅ�(d��ng)΢�ֵĻ���ԭ������(sh��)��(j��)�Y(ji��)��(g��u)���Լ��Ԅ�(d��ng)΢���ڌ�(sh��)�H��(ch��ng)���еđ�(y��ng)�������漰���I(l��ng)��������������㷨��(y��u)������(j��ng)�W(w��ng)�j(lu��)�����̽�ģ������Ӌ(j��)�����



����(sh��)�֞�3��������Ӌ(j��)10�����5ƪ��䛡���1���ֽ�B�˿�΢�־��̵Ļ���ԭ���������ք�(d��ng)��(d��o)����(sh��)ֵ΢������̖(h��o)΢���Լ��Ԅ�(d��ng)΢�ֵ�ǰ��ģʽ�ͷ���ģʽ����δ�{(di��o)���κΎ�(k��)����(sh��)����r���������_(k��i)ʼ��(g��u)�����˷�̖(h��o)΢�ּ��Ԅ�(d��ng)΢�ֵĔ�(sh��)��(j��)�Y(ji��)��(g��u)����2�����nj�(du��)JAX��(k��)���ԵĽ�B������JAX�Ļ����Z(y��)�����Ԅ�(d��ng)΢�֡����r(sh��)���g�Ͳ���Ӌ(j��)�������Դ˞��п�����(du��)��ȌW(xu��)��(x��)��λ������I(l��ng)���M(j��n)��������\�����v������3�������Ԅ�(d��ng)΢���ڌ�(sh��)�H��(ch��ng)���еđ�(y��ng)���������㷨��(y��u)������(j��ng)�W(w��ng)�j(lu��)�ȘO�佛(j��ng)��đ�(y��ng)�È�(ch��ng)�����@һ����߀�o�����Ԅ�(d��ng)΢���ڹ��̽�ģ������Ӌ(j��)��ȷ������Փ����(y��ng)�á�����(sh��)��Google�_(k��i)�l(f��)��JAX�_(k��i)Դ��ܞ��d�w��Ԕ��(x��)��B��JAX�ڿ�΢�־����I(l��ng)��đ�(y��ng)�������w�����Ԅ�(d��ng)΢�ֵĻ���ԭ������(sh��)��(j��)�Y(ji��)��(g��u)���Լ��Ԅ�(d��ng)΢���ڌ�(sh��)�H��(ch��ng)���еđ�(y��ng)�ã����漰���I(l��ng)��������������㷨��(y��u)������(j��ng)�W(w��ng)�j(lu��)�����̽�ģ������Ӌ(j��)�����



����(sh��)�֞�3���֣���Ӌ(j��)10�����5ƪ�������1���ֽ�B�˿�΢�־��̵Ļ���ԭ���������ք�(d��ng)��(d��o)����(sh��)ֵ΢������̖(h��o)΢���Լ��Ԅ�(d��ng)΢�ֵ�ǰ��ģʽ�ͷ���ģʽ����δ�{(di��o)���κΎ�(k��)����(sh��)����r���������_(k��i)ʼ��(g��u)�����˷�̖(h��o)΢�ּ��Ԅ�(d��ng)΢�ֵĔ�(sh��)��(j��)�Y(ji��)��(g��u)����2�����nj�(du��)JAX��(k��)���ԵĽ�B������JAX�Ļ����Z(y��)�����Ԅ�(d��ng)΢�������r(sh��)���g�Ͳ���Ӌ(j��)�㣬���Դ˞��п�����(du��)��ȌW(xu��)��(x��)��λ������I(l��ng)���M(j��n)��������\�����v������3�������Ԅ�(d��ng)΢���ڌ�(sh��)�H��(ch��ng)���еđ�(y��ng)���������㷨��(y��u)������(j��ng)�W(w��ng)�j(lu��)�ȘO�佛(j��ng)��đ�(y��ng)�È�(ch��ng)�����@һ����߀�o�����Ԅ�(d��ng)΢���ڹ��̽�ģ������Ӌ(j��)��ȷ������Փ����(y��ng)����



����(sh��)���w�ķ����m�V������(du��)����ÿ��(g��)�I(l��ng)��Ľ�B���^�ǜ\�L�mֹ���o(w��)Փ���ϵ��xȡ����(n��i)�ݵľ�����߀��Փ����ҕ�����^�c(di��n)�ijʬF(xi��n)���������·f֮̎��ͨ�^(gu��)����(sh��)�ČW(xu��)��(x��)���x�߲�����������J(r��n)AX�_(k��i)Դ��ܵ��÷���߀���ԫ@ϤJAX�ڿ�΢�־����I(l��ng)��ľ��w��(y��ng)�÷���������(sh��)�m���ڹ����Е�(hu��)�õ��Ԅ�(d��ng)΢�ּ��g(sh��)�Ĺ��̼��g(sh��)�ˆT�����������ˆT��x��Ҳ�m�ό�(du��)JAX���dȤ��ϣ���������䑪(y��ng)�õ�AI���g(sh��)�ˆT��x��

JAX��΢�־��� Ŀ�

������Ůʿ���{�� 1

�� 1�¡�����ҕ���µ�΢���\(y��n)�� 9

1.1������(sh��)�c��(d��o) 9

1.1.1 ��(d��o)�Ļ������� 10

1.1.2 �ݶȲ�����Gradient Operator�� 11

1.1.3 �ſɱȾ�ꇣ�Jacobian Matrix�� 12

1.1.4 ������ꇣ�Hessian Matrix�� 13

1.2���ք�(d��ng)��(d��o) 14

1.3����(sh��)ֵ΢�֣�Numeric Differentiation�� 14

1.3.1 ��(sh��)ֵ΢�ֵ���Փ���A(ch��) 14

1.3.2 ��(sh��)ֵ΢�ֵ��`���(l��i)Դ 16

1.3.3 ��(sh��)ֵ΢�ֵij���?q��)��F(xi��n) 19

1.4����̖(h��o)΢�֣�Symbolic Differentiation�� 24

1.4.1 Ӌ(j��)��D 24

1.4.2 Ӌ(j��)��D�Ę�(g��u)�� 26

1.4.3 SymPy��(k��)��(ji��n)�� 34

�� 2�¡��Ԅ�(d��ng)΢�� 39

2.1��ǰ��ģʽ��forward mode�� 40

2.1.1 ǰ��ģʽ����Փ 40

*2.1.2 ǰ��ģʽ�Ķ�Ԫ��(sh��)ԏ� 44

2.1.3 ǰ��΢�ֵij���?q��)��F(xi��n) 49

2.2������ģʽ��backward mode�� 58

2.2.1 ����ģʽ����Փ 58

*2.2.2 ����ģʽ��ǰ��ģʽ�Ľy(t��ng)һ 60

2.2.3 ����ģʽ�ij���?q��)��F(xi��n) 67

��3�¡����R(sh��)JAX 78

3.1����(sh��)�M�Ą�(chu��ng)�� 79

3.1.1 ��(sh��)�M�����|(zh��) 79

3.1.2 ��(chu��ng)����(sh��)�M���(sh��) 81

3.1.3 �S�C(j��)��(sh��)�M�Ą�(chu��ng)�� 84

3.2����(sh��)�M���޸� 86

3.2.1 ��S��(sh��)�M������ 86

3.2.2 ��S��(sh��)�M�ĔU(ku��)չ 89

3.2.3 ��S��(sh��)�M������ 92

3.2.4 Խ���О��̎�� 95

3.2.5 ���ظ��� 95

3.3����(sh��)�M���\(y��n)�� 97

3.3.1 �Z(y��)�x�V�� 97

3.3.2 ��(sh��)�M�\(y��n)�� 98

3.3.3 ���Դ���(sh��) 100

3.3.4 �ƌW(xu��)Ӌ(j��)�� 102

3.3.5 ��(��i)��˹̹��ͼs�� 102

3.4��ʹ�����ؿ��_������Ӌ(j��)�A���� 105

��4�¡�JAX��΢���\(y��n)�� 109

4.1��΢�ֲ������Z(y��)�� 109

4.1.1 JAX�е��ݶȲ��� 110

4.1.2 JAX�е��ſɱȾ�� 116

4.1.3 JAX�еĺ������ 118

4.1.4 �Զ��x������[����(sh��)��(d��o) 120

4.2���ݶ��½� 125

4.2.1 ��С���˷��f(shu��)�_(k��i)ȥ 126

4.2.2 ���ҘOСֵ 130

4.2.3 Ӗ(x��n)�����`�� 133

4.2.4 ȫ�B����(j��ng)�W(w��ng)�j(lu��) 140

��5�¡�JAX�ľ��̷�ʽ�����r(sh��)���g 150

5.1������(sh��)ʽ���� 151

5.1.1 ����(sh��)ʽ���̵ăr(ji��)ֵ�^ 151

5.1.2 JAX�еļ��r(sh��)���g 158

5.1.3 JAX�еėl���Z(y��)�� 162

5.1.4 JAX�е����̿����Z(y��)�� 166

5.1.5 �o�B(t��i)׃�� 170

*5.2����� 172

5.2.1 λ����Ļ����O(sh��)�� 172

5.2.2 λ�����еIJ�������(sh��) 176

5.2.3 λ�����е���Ȼ��(sh��) 177

5.2.4 λ�����е��f�w 181

��6�¡�JAX�IJ���Ӌ(j��)�� 186

6.1������(sh��)vmap 187

6.2��ʹ��vmap��GPU�ϲ���Ӗ(x��n)�� 194

6.3������(sh��)pmap 197

6.4��ʹ��pmap���¼�(x��)���Ԅ�(d��ng)�C(j��) 200

��7�¡���(y��u)���㷨 208

7.1���½��㷨��Ҫ 209

7.1.1 �½��㷨�Ĕ�(sh��)�W(xu��)���� 209

7.1.2 ���L(zh��ng)���xȡ 213

7.1.3 �Kֹ�l�����xȡ 218

7.1.4 �½�������xȡ 219

*7.1.5 ��ܗ�ݶ��㷨 223

7.2��һ�A��(y��u)���㷨 233

7.2.1 ��(d��ng)���� 233

7.2.2 ���m��(y��ng)�㷨 242

7.2.3 Adam 246

��8�¡�ѭ�h(hu��n)��(j��ng)�W(w��ng)�j(lu��) 250

*8.1����(j��ng)�W(w��ng)�j(lu��)������W(xu��)���A(ch��) 250

8.1.1 ��(j��ng)Ԫ��늻��W(xu��)���|(zh��) 251

8.1.2 ��(j��ng)Ԫݔ���^(gu��)�̵Ľ�ģ 254

8.1.3 ��(j��ng)Ԫ��(g��u)�ɾW(w��ng)�j(lu��)�Ľ�ģ 256

8.2��ѭ�h(hu��n)��(j��ng)�W(w��ng)�j(lu��) 263

8.2.1 ��(ji��n)��ѭ�h(hu��n)��(j��ng)�W(w��ng)�j(lu��) 263

8.2.2 ѭ�h(hu��n)��(j��ng)�W(w��ng)�j(lu��)���ݶȻ؂� 272

8.2.3 ��(ji��n)��ѭ�h(hu��n)��(j��ng)�W(w��ng)�j(lu��)�ij���?q��)��F(xi��n) 277

8.2.4 �L(zh��ng)����ӛ����Ԫ�������?q��)��F(xi��n) 286

8.2.5 ��������Ʊ�A(y��)�y(c��) 292

��9�¡�������FAST����(d��ng)��������ΑB(t��i)�{(di��o)��(ji��) 298

9.1��������B 298

9.2����(sh��)��(j��)���A(y��)̎�� 301

9.3���s����(y��u)����(w��n)�}�������ģ�͵�Ӗ(x��n)�� 306

9.4�� �����\(y��n)�нY(ji��)����ӑՓ 314

�� 10�¡�����Ӌ(j��)���е��Ԅ�(d��ng)΢�� 316

*10.1 ����Ӌ(j��)��Ĕ�(sh��)�W(xu��)���A(ch��) 317

10.1.1 ����c���ӑB(t��i) 317

10.1.2 �����ָ��(sh��) 323

10.1.3 �����(du��)���� 326

*10.2 ����Ӌ(j��)����������A(ch��) 329

10.2.1 ���������� 329

10.2.2 Ѧ���@���� 331

10.2.3 ��(d��ng)�����g 338

*10.3 ���������wϵ���Ԅ�(d��ng)΢�� 341

10.3.1 ���ӱ��� 342

10.3.2 ����(sh��)��(y��u)�� 347

���A��Python���(l��i)�Ľ�B 354

���B����?f��)����?369

���C����Ϣ���� 376

���D���½��㷨���Ք��Է��� 390

���E����(j��ng)Ԫ��Hodgkin Huxleyģ�� 400

��ӛ 410
չ�_(k��i)ȫ��

JAX��΢�־��� ���ߺ�(ji��n)��

�������������W(xu��)����W(xu��)Ժ�����������@��36��ȫ��(gu��)�ЌW(xu��)��������(j��ng)ِ���㽭ِ�^(q��)��һ�Ȫ�(ji��ng)��“δ���W(xu��)��”��(ji��ng)�W(xu��)���������(ji��ng)�W(xu��)����������W(xu��)���Ȫ�(ji��ng)�W(xu��)��ȶ��(xi��ng)��(ji��ng)��(l��)���о������漰��(qi��ng)���W(xu��)��(x��)���;S����(d��o)��(sh��)�(y��n)������Ӌ(j��)��������ģ�M�ȶ���(g��)�I(l��ng)����

���o(w��)�u(p��ng)Փ����
��(sh��)�����]
���(l��i)���N(xi��o)
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�