Leave a comment

p2004r December 14 2017, 05:48:27 UTC
Чувствую что надолго бы запомнил "840B tokens" :)

У меня вот такая конструктция в некой прикладной задаче сработала (это keras в R).

Идея дать сетке самой решить что какой символ значит.

aux_input_nicname <- layer_input(shape = c(seqLengthNames), dtype = 'int32', name = 'aux_input_nicname')
emb_out_nicname <- aux_input_nicname %>%
layer_embedding(input_dim = embNames, output_dim = 50, input_length = seqLengthNames) %>%
layer_spatial_dropout_1d(drop)

## bidirectional()

lstm_out.name.forw <- emb_out_nicname %>%
layer_lstm(units = 64,
dropout = 0.2,
recurrent_dropout = 0.2,
return_sequences = T) %>%
layer_batch_normalization() %>%
layer_lstm(units = 32,
dropout = 0.2,
recurrent_dropout = 0.2) %>%
layer_batch_normalization()

lstm_out.name.back <- emb_out_nicname %>%
layer_lstm(units = 64,
dropout = 0.2,
recurrent_dropout = 0.2,
return_sequences = T,
go_backwards=T) %>%
layer_batch_normalization() %>%
layer_lstm(units = 32,
dropout = 0.2,
recurrent_dropout = 0.2,
go_backwards=T) %>%
layer_batch_normalization()

name_output <- layer_concatenate(c(lstm_out.name.forw,
lstm_out.name.back)) %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_batch_normalization() %>%
layer_dropout(drop) %>%
......

Reply

kelijah December 14 2017, 09:57:59 UTC
Стек из двух LSTM слоев, с прослойкой из batch normalization, если я правильно понял синтаксис R? Интересно, а у меня никогда такая конструкция качество не повышала.

Reply

p2004r December 14 2017, 10:49:53 UTC
Эта часть сетки в данном случае просто попала в снипет (надо же где то было обрезать пример :) ).

Пойнт мне представляется разрешить самостоятельно сети различать символы.

Сейчас я этот кусок пишу по другому, получается куда устойчивее (и одновременно без отказа от глубины -- добавит полезное, так добавит).

...
return_sequences = T) %>%
layer_batch_normalization() %>%
list(emb_out_nicname) %>%
layer_concatenate() %>%
layer_lstm(units = 32,
...

Reply

kelijah December 14 2017, 10:56:14 UTC
А что в целом делает эта модель? Тоже занимается упаковкой слов в векторы фиксированного размера или что-то еще?

Reply

p2004r December 14 2017, 11:43:08 UTC
Это дополнительная фича для оценки неких намерений человека по использованному им никнейму в почтовом адресе при регистрации (точнее не могу рассказать). Меня поразило, что при валидации AUC модели с только этой информацией под 0.8 (точно число тоже увы не помню) получился.

Хотя конечно задача довольно простая -- ответить да-нет.

Reply

kelijah December 14 2017, 11:52:18 UTC
Занятно, то есть выбранный никнейм содержит в каком-то виде информацию о неких психологических склонностях своего владельца.

А потом лет через дцать стук в дверь - мы из полиции будущего, анализ вашего ника показал высокую склонность к насилию, пройдите с нами.

Reply

p2004r December 14 2017, 12:37:23 UTC
:)

Моё предположение проще, похоже что ники для "пробных регистраций" в сетевых сервисах выбирают неким специфическим способом и сетка это цепляет.

Reply


Leave a comment

Up