TensorFlow vs Google AI – giấc mơ sâu của Google
Khi những cơn bão “deep learning” vẫn không ngừng thì những chú AI của Google cũng không ngừng phát triển và công cụ tìm kiếm hiểu được mọi thứ trên web của Google sẽ không còn xa. Những chú AIs của Google có thể kể tới là deep dream, chatbot, spam-killing AI và image ...
Khi những cơn bão “deep learning” vẫn không ngừng thì những chú AI của Google cũng không ngừng phát triển và công cụ tìm kiếm hiểu được mọi thứ trên web của Google sẽ không còn xa. Những chú AIs của Google có thể kể tới là deep dream, chatbot, spam-killing AI và image recognition. Để phát triển những AI thông minh thì Google không thể thiếu những thư viện “khủng”.
TensorFlow được Google phát triển và phát hành tháng 10 năm 2015. Thư viện này hỗ trợ xây dựng các mô hình deeplearning rất phức tạp qua những API cực kì ngắn gọn. Các mô hình deeplearning phát triển trên TensorFlow có thể được sử dụng trên nhiều các loại platform khác nhau (từ smartphone tới distributed servers) và trên cả CPUs lẫn GPUs.
DeepDream được Google phát triển để nhận dạng và tăng cường các pattern của bức ảnh thông qua thuật toán ảo giác pareidolia từ đó tạo ra những hình ảnh giống như trong những giấc mơ. DeepDream được xây dựng trên công nghệ deeplearning với mô hình convolutional neural network – một công nghệ tiến tiến nhất để nhận dạng ảnh và được ứng dụng trong AlphaGo và nhiều các game AI hiện đại khác. Công cụ nhận diện ảnh của Google cũng được xây dựng dựa trên công nghệ này.
Mô hình convolutional neural network là một trong những mô hình được xây dựng sẵn trong TensorFlow. Chỉ với vài dòng setup ngắn gọn, người dùng đã có thể xây dựng một mô hình convolutional neural network để sử dụng.
Code trong TensorFlow:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
def conv2d(x, W): return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') def max_pool_2x2(x): return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME') # Layer 1 W_conv1 = weight_variable([5, 5, 1, 32]) b_conv1 = bias_variable([32]) h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1) h_pool1 = max_pool_2x2(h_conv1) # Layer 2 W_conv2 = weight_variable([5, 5, 32, 64]) b_conv2 = bias_variable([64]) h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) h_pool2 = max_pool_2x2(h_conv2) # Classification layer W_fc1 = weight_variable([7 * 7 * 64, 1024]) b_fc1 = bias_variable([1024]) h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64]) h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1) |
Google chatbot được phát triển dựa trên công nghệ deeplearning với mô hình sequence2sequence có thể trò chuyện với con người một cách thú vị. Mô hình deeplearning này không chỉ được sử dụng trong chatbot mà còn được sử dụng cho công cụ translator thông minh. Mô hình seq2seq thực chất là một mô hình mở rộng của mô hình recurrent neural network (rnn) với mỗi mô hình rnn tương ứng là một encoder và một decoder. Điều thú vị nhất trong mô hình rnn và seq2seq là mỗi từ được “sinh ra” theo chuỗi và giống như cách mà một người nói chuyện. Đặc biệt hơn nữa là với mô hình rnn, một chú chatbot có thể sáng tác tiểu thuyết theo một phong cách nào đó như phong cách của Sheakspeare chẳng hạn.
Code trong TensorFlow:
1 2 3 4 5 6 7 8 9 10 11 |
# The seq2seq function: we use embedding for the input and attention. def seq2seq_f(encoder_inputs, decoder_inputs, do_decode): return tf.nn.seq2seq.embedding_attention_seq2seq( encoder_inputs, decoder_inputs, cell, num_encoder_symbols=source_vocab_size, num_decoder_symbols=target_vocab_size, embedding_size=size, output_projection=output_projection, feed_previous=do_decode) |
Các mô hình cnn, rnn và seq2seq được sử dụng cho cả text, ảnh và các loại dữ liệu khác.
Mô hình rnn được sử dụng để đọc số nhà Mô hình rnn được sử dụng để in số nhàTensorFlow chính là một thư viện mã nguồn mở hữu ích cho các ứng dụng thông minh sử dụng những công nghệ deeplearning tiên tiến nhất hiện nay.
Techtalk via Techmaster