What are you using for loss?

I use this,

layers {
 name: "loss"
 type: EUCLIDEAN_LOSS
 bottom: "fc14"
 bottom: "label"
 top: "loss"
}

--------------------------------------------------------
name: "AyaNet"
layers {
 name: "mnist"
 type: DATA
 top: "data"
 data_param {
   source: "train_i50_v_2k_leveldb"
#    backend: LMDB
   batch_size: 256
 }
 include: { phase: TRAIN }
}
layers {
 name: "mnist"
 type: HDF5_DATA
 top: "label"
 hdf5_data_param {
   source: "/home/yss/test/train_v_2k_i50_11_only_hdf5/aya_data_list.txt"
   batch_size: 256
 }
 include: { phase: TRAIN }
}
layers {
 name: "mnist"
 type: DATA
 top: "data"
 data_param {
   source: "test_i50_v_2k_leveldb"
#    backend: LMDB
   batch_size: 256
 }
 include: { phase: TEST }
}
layers {
 name: "mnist"
 type: HDF5_DATA
 top: "label"
 hdf5_data_param {
   source: "/home/yss/test/test_v_2k_i50_11_only_hdf5/aya_data_list.txt"
   batch_size: 256
 }
 include: { phase: TEST }
}


#this part should be the same in learning and prediction network
layers {
 name: "conv1_5x5_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "data"
 top: "conv1"
 convolution_param {
   num_output: 128
   kernel_size: 5
   pad: 2
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu1"
 type: RELU
 bottom: "conv1"
 top: "conv1"
}

layers {
 name: "conv2_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv1"
 top: "conv2"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu2"
 type: RELU
 bottom: "conv2"
 top: "conv2"
}

layers {
 name: "conv3_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv2"
 top: "conv3"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu3"
 type: RELU
 bottom: "conv3"
 top: "conv3"
}

layers {
 name: "conv4_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv3"
 top: "conv4"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu4"
 type: RELU
 bottom: "conv4"
 top: "conv4"
}


layers {
 name: "conv5_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv4"
 top: "conv5"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu5"
 type: RELU
 bottom: "conv5"
 top: "conv5"
}

layers {
 name: "conv6_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv5"
 top: "conv6"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu6"
 type: RELU
 bottom: "conv6"
 top: "conv6"
}

layers {
 name: "conv7_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv6"
 top: "conv7"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu7"
 type: RELU
 bottom: "conv7"
 top: "conv7"
}

layers {
 name: "conv8_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv7"
 top: "conv8"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu8"
 type: RELU
 bottom: "conv8"
 top: "conv8"
}

layers {
 name: "conv9_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv8"
 top: "conv9"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu9"
 type: RELU
 bottom: "conv9"
 top: "conv9"
}

layers {
 name: "conv10_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv9"
 top: "conv10"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu10"
 type: RELU
 bottom: "conv10"
 top: "conv10"
}

layers {
 name: "conv11_3x3_128"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv10"
 top: "conv11"
 convolution_param {
   num_output: 128
   kernel_size: 3
   pad: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu11"
 type: RELU
 bottom: "conv11"
 top: "conv11"
}

layers {
 name: "conv12_1x1_1"
 type: CONVOLUTION
 blobs_lr: 1.
 blobs_lr: 2.
 bottom: "conv11"
 top: "conv12"
 convolution_param {
   num_output: 1
   kernel_size: 1
   pad: 0
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu12"
 type: RELU
 bottom: "conv12"
 top: "conv12"
}

layers {
 name: "fc13"
 type: INNER_PRODUCT
 bottom: "conv12"
 top: "fc13"
 inner_product_param {
   num_output: 256
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "relu13"
 type: RELU
 bottom: "fc13"
 top: "fc13"
}

layers {
 name: "fc14"
 type: INNER_PRODUCT
 bottom: "fc13"
 top: "fc14"
 inner_product_param {
   num_output: 1
   weight_filler {
     type: "xavier"
   }
   bias_filler {
     type: "constant"
   }
 }
}
layers {
 name: "tanh14"
 type: TANH
 bottom: "fc14"
 top: "fc14"
}

layers {
 name: "loss"
 type: EUCLIDEAN_LOSS
 bottom: "fc14"
 bottom: "label"
 top: "loss"
}
--------------------------------------------------------

Thanks,
Hiroshi Yamashita

----- Original Message ----- From: "Detlef Schmicker" <d...@physik.de>
To: <computer-go@computer-go.org>
Sent: Saturday, March 19, 2016 7:41 PM
Subject: Re: [Computer-go] Value Network


What are you using for loss?

this:

layers {
 name: "loss4"
 type:  EUCLIDEAN_LOSS
 loss_weight: 2.0
 bottom: "vvv"
 bottom: "pool2"
 top: "accloss4"
}


?

Am 04.03.2016 um 16:23 schrieb Hiroshi Yamashita:
Hi,

I tried to make Value network.

"Policy network + Value network"  vs  "Policy network" Winrate
Wins/Games 70.7%    322 / 455,    1000 playouts/move 76.6%    141 /
184,   10000 playouts/move

It seems more playouts, more Value network is effetctive. Games is
not enough though. Search is similar to AlphaGo. Mixing parameter
lambda is 0.5. Search is synchronous. Using one GTX 980. In 10000
playouts/move, Policy network is called 175 times, Value network is
called 786 times. Node Expansion threshold is 33.


Value network is 13 layers, 128 filters. (5x5_128, 3x3_128 x10,
1x1_1, fully connect, tanh) Policy network is 12 layers, 256
filters. (5x5_256, 3x3_256 x10, 3x3_1), Accuracy is 50.1%

For Value network, I collected 15804400 positions from 987775
games. Games are from GoGoD, tygem 9d,      22477 games
http://baduk.sourceforge.net/TygemAmateur.7z KGS 4d over, 1450946
games http://www.u-go.net/gamerecords-4d/ (except handicaps
games). And select 16 positions randomly from one game. One game is
divided 16 game stage, and select one of each. 1st and 9th position
are rotated in same symmetry. Then Aya searches with 500 playouts, with Policy network. And store winrate (-1 to +1). Komi is 7.5. This 500 playouts is around 2730 BayesElo on CGOS.

I did some of this on Amazon EC2 g2.2xlarge, 11 instances. It took 2 days, and costed $54. Spot instance is reasonable. However g2.2xlarge(GRID K520), is 3x slower than GTX 980. My Pocicy network(12L 256F) takes 5.37ms(GTX 980), and 15.0ms(g2.2xlarge). Test and Traing loss are 0.00923 and 0.00778. I think there is no
big overfitting.

Value network is effective, but Aya has still fatal semeai
weakness.

Regards, Hiroshi Yamashita

_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Reply via email to