Ditulis oleh Patricia Correa, Director, Platforms & Ecosystems Developer Marketing
Google Play memberdayakan semua developer game untuk mengajak dan membahagiakan semua orang di mana pun, sekaligus membangun bisnis yang sukses. Terinspirasi oleh semangat dan kreativitas yang kami lihat dari komunitas game indie, dan selama beberapa tahun terakhir, kami telah berinvestasi di sini dan membina developer game indie di seluruh dunia, untuk membantu mereka mengekspresikan suara unik dan menghidupkan ide-ide mereka.
Tahun ini, kami telah mengumpulkan beberapa inisiatif untuk membantu komunitas indie.
Indie Games Showcase
Untuk developer indie yang terus-menerus mendorong batas-batas penceritaan, kesempurnaan visual, dan kreativitas dalam seluler, hari ini kami mengumumkan Indie Games Showcase, sebuah kompetisi internasional untuk studio game dari Eropa*, Korea Selatan dan Jepang. Bagi Anda yang memenuhi kriteria kelayakan (seperti yang dijelaskan di bawah) bisa mengikutkan game Anda untuk kesempatan memenangkan beberapa hadiah, meliputi:
Perjalanan dan akomodasi gratis ke event final di region Anda untuk memamerkan game Anda.
Promosi di Google Play Store.
Promosi di saluran pemasaran Android dan Google Play.
Konsultasi khusus dengan tim Google Play.
Hardware Google.
Dan lebih banyak lagi...
Bagaimana cara mengikuti kompetisi
Jika Anda berusia di atas 18 tahun, bertempat tinggal di salah satu negara yang memenuhi syarat, memiliki 30 karyawan tetap atau kurang, dan telah memublikasikan game baru di Google Play setelah 1 Januari 2018, Anda bisa mengikutkan game Anda. Jika Anda berencana untuk memublikasikan game baru dalam waktu dekat, Anda juga bisa ikut serta dengan mengirimkan beta versi pengguna tertentu. Pengajuan ditutup pada 6 Mei 2019. Periksa semua detail dalam syarat dan ketentuan untuk masing-masing region. Masukkan sekarang!
Indie Games Accelerator
Tahun lalu kami meluncurkan akselerator game yang pertama untuk developer di Asia Tenggara, India dan Pakistan dan melihat hasil yang luar biasa. Kami senang bisa mengumumkan bahwa kami memperluas format ini untuk menerima developer dari negara tertentu di Timur Tengah, Afrika, dan Amerika Latin, dengan aplikasi untuk kelompok 2019 segera dibuka. Indie Games Accelerator adalah program intensif 6 bulan untuk startup game teratas, didukung oleh mentor dari industri game dan juga pakar Google, menawarkan kurikulum komprehensif yang mencakup semua aspek dalam membangun game dan perusahaan yang hebat.
Mobile Developer Day di GDC
Kami akan menjadi tuan rumah Developer Day tahunan di Game Developers Conference di San Francisco pada hari Senin, 18 Maret. Bergabunglah bersama kami untuk sesi sehari penuh yang membahas fitur dan praktik terbaik untuk membantu membangun bisnis game seluler yang sukses. Kami akan berfokus pada kualitas game, monetisasi efektif, dan strategi pertumbuhan, serta cara membuat, terhubung, dan penskalaan dengan Google. Daftar agar selalu up to date atau bergabunglah dengan kami melalui livestream.
Developer Days
Kami juga ingin berinteraksi langsung dengan Anda dalam rangkaian event. Kami akan segera mengumumkannya, jadi pastikan untuk mendaftar di newsletter kami agar mendapatkan notifikasi tentang event dan program untuk developer indie.
Akademi untuk Kesuksesan Aplikasi
Mencari tips tentang cara menggunakan berbagai fitur developer di Konsol Play? Dapatkan pelatihan gratis melalui program e-learning kami, Akademi untuk Kesuksesan Aplikasi. Kami bahkan memiliki Konsol Play khusus untuk developer game agar Anda mendapatkan start awal di Google Play.
Kami berharap bisa melihat karya luar biasa Anda dan membagikan kreativitas Anda dengan developer, gamer, dan pakar industri lain di seluruh dunia. Dan jangan lupa untuk mengirimkan game Anda agar mendapatkan kesempatan tampil di Indie Corner di Google Play.
* Kompetisi ini terbuka untuk developer dari negara Eropa berikut: Austria, Belgia, Belarus, Republik Ceko, Denmark, Finlandia, Prancis, Jerman, Israel, Italia, Belanda, Norwegia, Polandia, Rumania, Rusia, Slowakia, Spanyol, Swedia, Ukraina, dan Inggris (termasuk Irlandia Utara).
Menurut Anda seberapa bermanfaatkah entri blog ini?
★★★★★
Ketika teknologi cloud semakin banyak dipakai, banyak tantangan tradisional terhadap inisiatif cloud mulai terpinggirkan. Tetapi ada satu tantangan yang terus berdampak pada banyak perusahaan. Peningkatan adopsi cloud telah mengakibatkan peningkatan kebutuhan pekerja terampil dalam teknologi cloud. Namun tenaga kerja ini tidak mudah didapat. Survei terbaru OpsRamp terhadap 124 manajer TI menemukan bahwa 94 persen manajer mengatakan bahwa "agak sulit” menemukan kandidat dengan keterampilan teknologi cloud yang tepat—situasi yang mereka sebut sebagai "krisis besar-besaran.”
Di Google Cloud, kami memahami bahwa memiliki keterampilan yang tepat bisa menciptakan atau merusak penjelajahan dalam dunia cloud. Menurut survei Indeed, “Google Cloud adalah keterampilan dengan permintaan pertumbuhan tercepat” dengan peningkatan 66,74% dalam setahun terakhir. Jadi kami menggandakan upaya guna memberikan sumber daya yang mampu mengembangkan kelihaian cloud untuk seluruh tenaga kerja.
Pada tahun 2019, kami menangani krisis keterampilan cloud dengan tiga cara:
Memperluas sertifikasi berbasis-peran untuk membantu bisnis mengidentifikasi bakat yang berkualitas.
Menyiapkan jutaan pekerja yang akan berkembang dalam dunia cloud dengan menawarkan berbagai pilihan pembelajaran.
Melokalkan pembelajaran dan sertifikasi cloud kami dalam bahasa Jepang, Prancis, Jerman, Spanyol, dan Portugis agar dapat diakses oleh lebih banyak orang.
Memperluas Sertifikasi
Ketika adopsi cloud terus tumbuh, bisnis semakin perlu menegaskan ulang peran tugas TI tradisional untuk merefleksikan mandat meluas yang menjembatani teknologi dan strategi bisnis. Untuk membantu, kami telah mengembangkan portofolio sertifikasi yang membahas peran terpenting untuk sukses di cloud.
Hari ini, kami mengumumkan bahwa kami menambahkan empat sertifikasi baru ke portofolio Google Cloud Certified:
Keempat sertifikasi baru ini melengkapi portofolio sertifikasi kami (yang sudah mencakup Professional Cloud Architect, Professional Data Engineer, dan Associate Cloud Engineer). Secara kolektif, sertifikasi kami mendukung peran tugas cloud inti yang kami yakini harus dimiliki oleh setiap organisasi dalam tim mereka. Selama setahun terakhir, dengan saksama kami memperhatikan apa yang bisa membantu organisasi agar berhasil bertransisi ke cloud dan memaksimalkan investasi mereka. Yang kami pelajari adalah bahwa ini membutuhkan kolaborasi lintas tim, terutama anggota-anggota yang mendesain dan mengamankan infrastruktur, membangun aplikasi, dan menghubungkan data—peran yang tercermin dalam sertifikasi kami.
Salah satu kunci untuk transformasi cloud yang sukses adalah mengembangkan keterampilan di seluruh organisasi. Hingga saat ini, kami juga telah menyertakan sertifikasi G Suite untuk memvalidasi keterampilan digital yang digunakan dalam lingkungan profesional cloud terkini. Banyak pengguna yang mengatakan kepada kami bagaimana migrasi ke G Suite telah menjadi kunci untuk membuka budaya kolaborasi dan inovasi cloud. Dengan menghadirkan sertifikasi baru ini, kami berharap bisa memecahkan masalah kesenjangan keterampilan digital dan melengkapi pengguna kami dengan tolok ukur untuk mengukur kesiapan tim mereka untuk transformasi cloud yang besar.
Menyiapkan Jutaan Pekerja Untuk Sukses di Dunia Cloud
Menurut survei Indeed, daftar pekerjaan yang menyebutkan “Google Cloud” sebagai keterampilan yang diinginkan telah meningkat 1082% dalam tiga tahun terakhir. Untuk membantu memenuhi permintaan tersebut, kami berkomitmen untuk melatih jutaan orang pada tahun 2019 dan seterusnya.
Kami telah memperluas portofolio pelatihan yang solid untuk mendukung keterampilan Google Cloud yang sangat diminati. Dengan lebih dari 40 kursus sesuai permintaan dan hampir 300 lab praktik, kami menyediakan sumber daya yang diperlukan bagi pekerja untuk mengembangkan keahlian cloud dan selalu update dengan perkembangan teknologi Google Cloud. Berikut adalah beberapa tambahan terbaru dalam katalog pelatihan kami:
Membuat Pembelajaran Dapat Diakses Oleh Semua Orang
Sejak awal program Google Cloud Learning, kami telah berkomitmen untuk memberikan pelatihan yang terjangkau dan dapat diakses oleh semua orang. Tidak butuh waktu lama untuk menyadari bahwa lingkungan pembelajaran yang nyaman dan modern dengan cepat menjadi norma baru, jadi kami menjadi salah satu penyedia cloud publik pertama yang menawarkan semua program kursus kami sesuai permintaan. Dan untuk melanjutkan komitmen aksesibilitas, kami melokalkan kursus dan sertifikasi kami ke dalam lima bahasa: Prancis, Jerman, Jepang, Portugis, dan Spanyol. Kami memiliki rencana besar untuk terus memperluas penawaran bahasa ini pada tahun 2019.
Berikut adalah beberapa garis besar pelatihan dan sertifikasi terbaik kami yang sudah dilokalisasikan
Pembelajar Hari Ini Adalah Pemimpin Masa Depan
Jika Anda atau tim Anda siap untuk belajar cloud bersama kami pada tahun 2019, kami mendorong Anda untuk menjadikan sertifikasi sebagai tujuan Anda. Mulai bulan Februari, kami akan menyelenggarakan webinar mingguan gratis untuk membantu Anda bersiap-siap menyambut Sertifikasi Google Cloud. Lihat situs Cloud OnAir secara berkala untuk melihat webinar mendatang kami. Sementara itu, segera mulai pembelajaran Anda sekarang juga dengan akses gratis satu bulan untuk memilih pelatihan sesuai permintaan di Coursera hingga 31 Desember 2019 ketika Anda mendaftar.
Jika bergabung dengan kami di Next ‘19 di San Francisco, Anda bisa terus bersiap di salah satu dari banyak bootcamp atau dapatkan Google Cloud Certified di tempat acara. Jika Anda tidak bergabung dengan kami di Next ‘19, Anda bisa mendaftar untuk mengikuti ujian sertifikasi di pusat pengujian di dekat Anda.
Ketika berkaitan dengan pembelajaran Google Cloud, kami mengerahkan segenap kemampuan yang ada. Apakah Anda juga begitu?
MIT 6.S191: Introduction to Deep Learning adalah kursus pengenalan yang ditawarkan secara formal di MIT dan berbasis open source di situs kursusnya. Kelas ini terdiri dari serangkaian pembelajaran dasar tentang dasar-dasar neural network dan aplikasinya untuk sequence modeling, computer vision, generative model, dan reinforcement learning.
Moto resmi MIT adalah “Mens et Manus” — Pikiran dan Tangan — jadi bukan kebetulan juga jika kami sangat percaya pada filosofi ini. Sebagai penyelenggara dan pengajar MIT Introduction to Deep Learning, kami ingin mengembangkan kursus yang berfokus pada landasan konseptual dan keterampilan praktis yang diperlukan untuk memahami dan menerapkan algoritme deep learning. Dan kami sangat senang bisa membagikan apa yang telah kami kumpulkan bersama Anda, di sini dan sekarang: rangkaian sembilan pembelajaran teknis dan tiga lab software TensorFlow, yang dirancang untuk dapat diakses oleh berbagai latar belakang teknis, gratis dan terbuka untuk semua.
MIT Introduction to Deep Learning terdiri dari pembelajaran teknis tentang algoritme terkini serta lab software terapan di TensorFlow. Mens: Pembelajaran Teknis. Kita mulai dari dasar-dasar neural network — Perceptron, jaringan yang sepenuhnya terhubung, dan algoritme backpropagation; penjelajahan melalui recurrent dan convolutional neural network, generative model, dan deep reinforcement learning; dan jelajahi batas-batas yang semakin luas dari riset deep learning modern, yang akan diakhiri dengan serangkaian kuliah tamu dari para peneliti industri terkemuka. Semua pembelajaran gratis dan terbuka untuk semua, link bisa ditemukan pada thumbnail di bawah ini.
Semua pembelajaran tersedia online secara gratis — silakan klik thumbnail di atas untuk menontonnya! Manus: Lab Software TensorFlow. Kami telah merancang tiga open-source, lab software TensorFlowinteraktif, yang mencakup dasar-dasar TensorFlow, model recurrent neural network untuk pembuatan musik, computer vision, sistem pengenalan wajah debiasing, dan deep reinforcement learning. Lab dijalankan di lingkungan Kolaboratif Google yang mengagumkan (yang Anda perlukan hanyalah akun Google!), dan termasuk blok kode “TODO”yang tinggal Anda lengkapi. Kami akan membimbing serta memberi tahu Anda mengenai cara mendefinisikan dan melatih model deep learning menggunakan Keras API TensorFlow dan model eksekusi imperatifnya yang baru.
Blog ini menyoroti ketiga lab software ini dan pembelajaran yang menyertainya.
Dapatkan pengalaman praktik dengan lab software TensorFlow secara mendalam.
Lab 1: Pengantar TensorFlow & Pembuatan Musik
Merancang kursus dan lab agar bisa diakses oleh sebanyak mungkin orang adalah prioritas utama kami. Jadi, Pembelajaran 1 berfokus pada dasar-dasar neural network, dan modul pertama dalam Lab 1 memberikan pengantar TensorFlow yang jelas, dan ditulis sebagai persiapan untuk rilis mendatang TensorFlow 2.0.
Pengantar TensorFlow kami menyoroti beberapa konsep utama khususnya: cara menjalankan komputasi menggunakan operator matematika, cara mendefinisikan model neural network, dan cara menggunakan diferensiasi otomatis untuk melatih jaringan dengan backpropagation.
Setelah modul Pengantar TensorFlow, modul kedua Lab 1 mendalami pembangunan dan penerapan recurrent neural network (RNN) untuk pembuatan musik, yang dirancang untuk menemani Pembelajaran 2 pada deep sequence modeling. Anda akan membangun algoritme AI yang bisa menghasilkan musik khas Irlandia yang baru dan belum pernah didengar sebelumnya. Anda mungkin bertanya, mengapa memilih musik khas Irlandia? Ya, kami pikir tarian semanggi yang lucu ini (milik Google) sudah cukup menjelaskan semuanya.
Anda mengisi blok kode untuk mendefinisikan model RNN, melatih model menggunakan set data lagu-lagu khas Irlandia (dalam notasi ABC), menggunakan model yang sudah dipelajari untuk menghasilkan lagu baru, kemudian memutar ulang apa yang dihasilkan untuk mendengar seberapa baik model melakukannya. Lihat contoh lagu yang kami buat ini:
Lab 2: Computer Vision: Sistem Deteksi Wajah Debiasing
Lab 2 mendukung pembelajaran deep computer vision dan deep generative models. Bagian 1 menyediakan praktik lanjutan dengan implementasi arsitektur neural network mendasar melalui contoh convolutional neural networks (CNN) untuk klasifikasi digit tulisan tangan dalam set data MNIST yang terkenal.
Bagian kedua dari lab ini mengambil langkah lebih jauh lagi, dan mengeksplorasi dua contoh utama deep learning terapan: deteksi wajah dan bias algoritmik. Meskipun mungkin tidak mengejutkan bahwa neural network berkinerja sangat baik dalam mengenali wajah di gambar, baru-baru ini terdapat banyak sorotan tentang bagaimana beberapa AI ini kesulitan dengan bias algoritmik tersembunyi. Dan, ternyata deep learning sendiribisa membantu mengatasi bias ini. Dalam karya terbaru ini, kami melatih sebuah model, berdasarkan variational autoencoder (VAE), yang mempelajari kedua tugas khusus, seperti deteksi wajah, dan struktur yang mendasari data pelatihan. Selanjutnya, algoritme menggunakan struktur terpendam yang dipelajari ini untuk mengungkap dan meminimalkan bias tersembunyi. Ketika diterapkan pada tugas deteksi wajah, algoritme kami mengurangi bias kategorikal dan mempertahankan akurasi keseluruhan yang tinggi dibandingkan dengan model terkini.
Lab software ini terinspirasi oleh karya ini: Anda akan benar-benar membangun model debiasing ini dan mengevaluasi keberhasilannya dalam melakukan debiasing tugas deteksi wajah.
Selain memikirkan masalah bias algoritmik — dan cara mengatasinya — Anda akan mendapatkan pengalaman praktik dalam bekerja dengan VAE, sebuah arsitektur yang sering tidak disorot dalam tutorial implementasi deep learning. Misalnya, Anda akan melengkapi blok kode ini yang mendefinisikan fungsi loss untuk VAE yang digunakan dalam model debiasing:
Dalam lab final, siswa mengeksplorasi kelas masalah pembelajaran yang berbeda dari dua lab sebelumnya. Dalam Pembelajaran 5 siswa dihadapkan pada teknik-teknik dasar dalam Deep Reinforcement Learning.
Dibandingkan dengan lab sebelumnya yang berfokus pada pembelajaran terarah dan tak terarah, reinforcement learning berusaha untuk mengajari agen tentang cara bertindak di dunia untuk memaksimalkan hasil. Eksekusi imperatif Tensorflow menyediakan metode yang disederhanakan untuk RL yang diprogram siswa dari awal dalam Lab 3.
Kami berfokus untuk pembelajaran dua tugas dalam kedua kontrol (mis. Cart-Pole) dan game (mis. Pong). Siswa ditugaskan untuk membangun framework RL modular untuk mempelajari dua lingkungan yang sangat berbeda dengan hanya menggunakan satu “otak RL”.
Berurusan dengan lingkungan dasar ini memberi siswa cara yang cepat untuk membuat prototipe algoritme baru dengan singkat, mendapatkan pemahaman konkret tentang bagaimana menerapkan prosedur pelatihan RL, dan menggunakan ide-ide ini sebagai template yang bergerak maju dalam project akhir mereka.
Ringkasan
Kami ingin mengucapkan terima kasih kepada tim TensorFlow dan grup TA kami yang luar biasa atas dukungan yang berkelanjutan sehingga membuat kursus MIT ini bisa terselenggara. Lab software MIT 6.S191 menyediakan cara yang bagus untuk dengan cepat mendapatkan pengalaman praktik TensorFlow, dengan menerapkan teknik dan algoritme terkini yang diperkenalkan dalam pembelajaran.
Panduan praktis untuk menerapkan machine learning dalam dunia kesehatan
Kesehatan adalah industri yang memunculkan harapan tertinggi mengenai manfaat potensial dari Kecerdasan Buatan (AI). Dokter dan peneliti medis tidak akan menjadi programmer atau data scientist dalam semalam, mereka juga tidak akan digantikan olehnya, tetapi mereka membutuhkan pemahaman tentang apa itu sebenarnya AI dan bagaimana cara kerjanya. Demikian juga, data scientist perlu bekerja sama erat dengan dokter untuk berfokus pada pertanyaan medis yang relevan dan memahami pasien di balik data tersebut.
Studi kasus ini bertujuan untuk menghubungkan kedua audience (dokter/tenaga medis dan data scientist) dengan memberikan analisis tentang bagaimana cara menerapkan machine learning ke kasus penggunaan medis tertentu. Kami akan memandu Anda melalui pertimbangan pendekatan kami sehingga Anda bisa menemani kami dalam perjalanan praktik (melalui notebook Colab) yang berfokus dalam memahami mekanisme yang mendasari model machine learning terapan.
Eksperimen kami berfokus dalam membuat dan membandingkan algoritme peningkatan kompleksitas dalam upaya yang berhasil untuk memperkirakan usia fisiologis otak berdasarkan data Magnetic Resonance Imaging (MRI). Berdasarkan percobaan ini, kami mengemukakan bagaimana pencitraan biomarker bisa berdampak dalam memahami penyakit neurodegeneratif seperti Alzheimer.
Menentukan input (X) dan output (Y) yang dibutuhkan untuk membingkai masalah medis yang menarik untuk machine learning bukanlah tugas yang mudah, tetapi berikut adalah beberapa contohnya:
Pertanyaan medis dibingkai sebagai masalah machine learning terarah
Ketika dihadapkan dengan masalah seperti ini, data scientist selalu mengambil pendekatan yang sama, tanpa mengindahkan X dan Y:
Ambil data dan bersihkan
Analisis data lalu ekstrak fitur yang relevan dengan masalah tersebut
Rancang strategi validasi
Latih algoritme dengan data tersebut, analisis error, dan interpretasikan hasilnya
Ulangi terus sampai kinerja terbaik algoritme didapatkan.
Catatan: Dalam pekerjaan ini, kami menggunakan Python, salah satu bahasa pemrograman paling populer dalam machine learning. Untuk pengguna baru, kami mengundang Anda untuk mengeksekusi baris kode pertama di notebook Colab untuk mengetahui cara kerjanya.
Pengumpulan Data
Untuk project ini, kami menggunakan dua set data MRI otak yang tersedia untuk publik dan anonim dari subjek yang sehat. Pertama, Set Data A, yang dikumpulkan di tiga rumah sakit London yang berbeda dan berisi data dari hampir 600 subjek. Kedua, Set Data B, yang berisi data dari lebih dari 1.200 subjek dari 25 rumah sakit di AS, Cina, dan Jerman.
Catatan: Bagian ini tentu mudah bagi kami, karena set data gambar yang kami gunakan sudah dikumpulkan dan dikurasi, serta dapat digunakan, dari perspektif hukum dan peraturan. Dan juga, keuntungan pencitraan medis dari format standar yang disebut DICOM, tidak seperti catatan kesehatan elektronik, data genomik, atau patologi digital. Namun, kompilasi set data medis biasanya merupakan tugas yang paling sulit dan memakan waktu bagi dokter dan peneliti, sering kali membutuhkan waktu berbulan-bulan untuk mengumpulkan data dari beberapa ratus pasien.
Seperti dalam project sains data, ini dimulai dengan pembersihan data. Ini menimbulkan masalah: Masalah ID, baris yang hilang dalam spreadsheet, gambar berkualitas rendah, dll.Error semacam itu sangat umum untuk set data medis.
Setelah itu, kami memperoleh 563 subjek “bersih” dari Set Data A (turun dari 600, atau 94%) dan 1.034 subjek untuk Set Data B (turun dari 1.200, atau 86%). Ini ditangkap dalam notebook Colab. Kami mengamati demografi berikut dalam kelompok: 55% adalah perempuan, yang termuda berusia 18 tahun, yang tertua berusia 87 tahun, dan kuartil usia 22, 27, dan 48.
Histogram distribusi usia di antara 1.597 subjek, yang menunjukkan bias terhadap subjek yang lebih muda.
Sebelum Memproses Data
Saat membuka file yang berisi MRI, kami mengamati diferensiasi yang sangat tinggi antar masing-masing gambar: resolusi, nilai voxel, kolom tampilan, orientasi, dll. Oleh karena itu, diperlukan beberapa metode normalisasi agar kita bisa membandingkannya.
Catatan: Komunitas pencitraan medis dan neuroscience telah mengembangkan fitur software normalisasi MRI otak. Kami menerapkan hal ini, pertama-tama menggunakan ANTs untuk mendaftarkan semua gambar ke atlas (MNI152) dan melakukan skull stripping, kemudian menormalkan nilai intensitas voxel dengan menerapkan koreksi kolom bias N4 dan teknik yang populer, normalisasi white stripe. MRI bukanlah gambar kuantitatif, jadi yang perlu diperhatikan adalah perbedaan kontras.
Pipeline prapemrosesan MRI.
Apa yang dokter ketahui tentang penuaan otak?
Tidaklah mungkin bagi dokter untuk menentukan usia subjek secara tepat hanya dari gambar otak. Namun, ahli radiologi tahu setidaknya ada tiga fitur anatomi yang terkait dengan penuaan otak, terlihat pada urutan MRI T1 yang kami gunakan dalam pekerjaan ini:
Leukoaraiosis, yang muncul sebagai hipointensitas materi putih (karena penuaan pembuluh darah)
Dilatasi ventrikel, sebagai konsekuensi atrofi dan penumpukan cairan serebrospinal di ventrikel otak.
Perbandingan usia otak secara fisiologis dengan fitur-fitur yang diperjelas
Beberapa peneliti telah menyelidiki prediksi usia otak dengan data anatomi, serta kaitannya dengan genetika atau gangguan otak. James Cole, rekan peneliti di King’s College London, telah menulis serangkaian makalah yang bagus tentang topik ini (Cole et al., 2017 adalah yang paling mirip dengan pekerjaan kami). Sebuah studi yang jauh lebih besar (Kaufmann et al., 2018) pada sekitar 37.000 pasien saat ini sedang ditinjau, dan keduanya tercakup dengan baik dalam artikelQuanta ini.
Memulai dengan baseline
Untuk memahami kompleksitas masalah, kami mendefinisikan algoritme baseline sederhana. Kami memutuskan untuk tidak menggunakan seluruh 3D MRI, tetapi memakai refleksi yang lebih sederhana dari konten, histogram dari intensitas voxel mereka. Histogram khas T1-MRI ditunjukkan di bawah ini (bangun histogram Anda di notebook Colab).
Dua puncak tersebut merepresentasikan materi abu-abu dan materi putih. Seperti yang kita ketahui, penuaan berhubungan dengan atrofi materi abu-abu. Bisakah kita memprediksi usia otak dengan representasi yang belum sempurna ini?
Regresi linear ridge yang dilatih pada histogram ini memberi kami mean absolute error rata-rata 9,08 tahun (menggunakan 5-fold cross-validation, random split). Gradient boosted trees memberikan hasil yang jauh lebih baik dan mengurangi error menjadi 5,71 tahun, yang jauh lebih dekat dengan kinerja termutakhir (4,16 tahun seperti yang dilaporkan dalam Cole et al. 2017). Termutakhir adalah titik henti yang menggoda, tetapi kami membuat kesalahan besar yang sayangnya, cukup umum.
Meninjau kembali cross validation
Kisaran intensitas voxel dalam MRI tidak memiliki arti biologis dan sangat bervariasi antara satu pemindai MRI dengan yang lain. Dalam prosedur cross-validation, kami membagi subjek secara acak di antara set pelatihan dan pengujian. Namun, apa yang akan menjadi konsekuensi dari pengacakan bukanlah subjek tetapi rumah sakit, dan karenanya pemindai MRI?
Setelah kami membagi berdasarkan rumah sakit, (dan pembatas tambahan dengan ukuran set pelatihan yang kira-kira konstan), mean absolute error dari model regresi linier dan gradient boosted trees kami meningkat secara dramatis sekitar 5 dan 6 tahun.
Dua gambar berikut menunjukkan bahwa analisis data yang lebih hati-hati akan mencegah kita melakukan kesalahan seperti itu. Dalam gambar pertama, Anda bisa melihat bahwa distribusi usia per rumah sakit sangat berbeda: beberapa rumah sakit hanya memiliki subjek berusia muda dalam set data mereka, sementara yang lain hanya memiliki subjek berusia tua.
Distribusi usia per rumah sakit.
Pada gambar berikutnya, di sebelah kiri, kami menunjukkan histogram rata-rata dari subjek di setiap rumah sakit dan mendapatkan penjelasannya: meskipun puncak materi putih cukup selaras di berbagai rumah sakit, puncak materi abu-abu tersebar luas. Heterogenitas ini menghasilkan bias yang bisa dipelajari oleh algoritme, dan dapat menyebabkan prediksi yang salah. Untuk membatalkan efek ini, kami menggunakan metode normalisasi buatan sendiri untuk memperbaiki puncak materi abu-abu, seperti yang terlihat di bawah sebelah kanan:
Rata-rata histogram intensitas voxel per rumah sakit: kiri, dinormalisasi hanya pada puncak materi putih (v1); kanan, dinormalisasi pada puncak materi putih dan materi abu-abu (v2).
Seperti yang diduga, error cross-validation acak meningkat dengan normalisasi baru ini, tetapi menurun untuk cross-validation rumah sakit, seperti yang diilustrasikan di bawah ini:
Mean Absolute Error (MAE) dan deviasi standar selama bertahun-tahun untuk berbagai algoritme
Bagian ini memperjelas bahwa cross-validation harus dikelompokkan secara cermat untuk menghindari kebingungan variabel (seperti pemindai MRI). Menurut pendapat kami, praktik terbaik untuk memvalidasi suatu algoritme adalah dengan mengujinya pada set data eksternal dan prospektif. Hambatan untuk menyimpulkan kebenaran dari pengobatan berbasis-bukti adalah kurangnya validitas eksternal hasil dalam sebuah makalah ilmiah. Hal ini bisa menyebabkan, dalam bahasa machine learning, kurangnya “kemampuan generalisasi” dari algoritme. Konsep “level of evidence” dalam kedokteran memungkinkan hierarki tingkat kepercayaan terhadap hasil yang dipublikasikan dalam makalah penilaian sejawat. Saat ini, tidak ada yang setara dalam machine learning.
Lebih jauh lagi dengan segmentasi jaringan
Dengan mereduksi seluruh MRI menjadi histogram, kami mengabaikan informasi spasial tentang struktur otak. Sebagai langkah berikutnya menuju algoritme yang lebih efektif dan bisa ditafsirkan, kami menggunakan paket software lain, FSL FAST, untuk membagi setiap MRI menjadi materi abu-abu, materi putih, dan cairan serebrospinal (CSF). Segmentasi ini didasarkan pada nilai voxel dan memberikan hasil meyakinkan yang bisa Anda lihat di notebook Colab kami.
Tampilan masker segmentasi jaringan otak yang berbeda. Dari kiri ke kanan, masker materi abu-abu, materi putih, dan cairan serebrospinal (CSF)
Berdasarkan segmentasi ini, kami mengamati korelasi Pearson negatif antara usia dan volume total materi abu-abu sebesar -0,75, yang membenarkan hipotesis atrofi materi abu-abu. Lebih jauh, kami menghitung volume lokal jaringan tersegmentasi dan menggunakannya sebagai input dari model linier. Dengan menggunakan fitur tingkat tinggi ini, kami mendapatkan hasil yang lebih baik daripada dengan histogram sederhana, seperti yang diilustrasikan di bawah ini:
Mean Absolute Error (MAE) dan deviasi standar selama bertahun-tahun untuk berbagai algoritme.
Mari kita mulai dengan CNN!
Ini adalah langkah terakhir dari petualangan kita. Sejauh ini, kami memanipulasi data untuk mengekstrak fitur yang kami anggap relevan dengan prediksi usia. Deep learning menghadirkan pendekatan lain dan menggunakan keluarga fungsi yang disebut Convolutional Neural Networks (CNN) yang bekerja langsung pada gambar mentah. Mereka mampu mengidentifikasi fitur paling relevan untuk tugas yang diberikan tanpa panduan manusia.
Untuk studi kasus ini, kami menyederhanakan masalah dengan mengurangi masing-masing MRI dari sekitar 200 gambar dalam dimensi aksial menjadi hanya 10 gambar, masing-masing mewakili zona aksial 1mm di level ventrikel, di mana atrofi, dilatasi ventrikel, dan leukoaraiosis bisa dideteksi. Kami merancang CNN sederhana (10 layer convolutional, parameter 5M), dan memperoleh mean absolute error 4,57 tahun untuk random split dan 6,94 tahun untuk hospital split.
Kami kemudian menyempurnakan model dengan menggunakan augmentasi data yang terdiri dari menyimulasikan lebih banyak data dari yang Anda miliki dengan sedikit mengubah bentuk set data, menambahkan sedikit distorsi melalui rotasi, zoom, mengubah intensitas piksel. Model terlatih bisa dimuat dan digunakan dalam notebook Colab.
Transfer learning adalah teknik yang banyak digunakan dengan menyempurnakan CNN yang sudah dilatih sebelumnya pada tugas yang benar-benar baru. Kami menggunakan salah satu CNN ini (ResNet50) dan menyempurnakannya pada set data kami. Rangkaian hasil lengkap dari berbagai arsitektur CNN ditunjukkan di bawah ini:
Mean Absolute Error (MAE) dan deviasi standar selama bertahun-tahun untuk berbagai algoritme
Metode ensemble untuk kinerja terbaik
Sebagai trik terakhir, kami merata-rata prediksi dua algoritme terbaik kami: CNN dengan augmentasi data dan model linier pada MRI tersegmentasi. Sama dengan kolaborasi antar para pakar, metode ensemble membawa dorongan tambahan dalam kinerja, memperjelas bahwa kedua model ini berbeda tetapi saling melengkapi.
Dalam tabel di bawah, kami menyajikan lebih banyak metrik dari model akhir kami. Karena kelompok kami masih muda (usia median adalah 27 tahun), model kami lebih bisa diandalkan untuk subjek muda daripada untuk yang lebih tua:
Kinerja rata-rata pada 5-fold cross-validation untuk algoritme terakhir
Melihat ke dalam kotak hitam
Metrik kinerja mungkin meyakinkan, tetapi sering kali tidak cukup untuk membangkitkan kepercayaan. Algoritme seperti CNN, dengan jutaan parameter, sulit dipahami dan merupakan kotak hitam yang membuat frustrasi dokter yang mencoba memahami biologi di baliknya.
Untuk sekilas pandang ke dalam kotak hitam, kami menggunakan teknik oklusi sederhana. Idenya adalah dengan menyumbat area kecil (4 cm² di sini) dari set pengujian gambar dan mengamati penurunan yang berhubungan dalam mean absolute error. Jika kinerjanya turun secara signifikan, berarti area yang tersumbat itu penting untuk algoritme. Pada gambar di bawah, region merah muda terkait dengan penurunan error tertinggi:
Peta oklusi yang diperoleh untuk subjek dewasa di bawah 30 tahun (kiri), dan subjek di atas usia 60 tahun (kanan).
Peta oklusi subjek termuda di sebelah kiri mengungkapkan bahwa region yang paling dekat dengan ventrikel sangatlah penting dalam prediksi, dan secara ilmiah, memang demikian adanya. Kita tahu bahwa ventrikel paling tipis terdapat pada orang yang lebih muda, karena ventrikel semakin membesar seiring dengan penuaan. Peta oklusi subjek tertua mengungkapkan pentingnya insula di kedua sisi yang konsisten dengan hasil dari Good et al., 2001.
Beberapa teknik yang lebih canggih untuk menginterpretasikan algoritme deep learning dirangkum dengan baik dalam postingan ini.
Menggunakan model kami untuk memprediksi penyakit Alzheimer
Aplikasi praktik latihan ini adalah memperkirakan usia fisiologis otak untuk mengembangkan pemahaman yang lebih baik tentang penyakit neurodegeneratif seperti penyakit Alzheimer. Sebagai eksperimen terakhir, kami menerapkan model kami pada 489 subjek dari database ADNI, dibagi menjadi dua kategori: kontrol normal (269 subjek) dan penyakit Alzheimer (220 subjek).
Kami mendownload data, membersihkannya, meneruskannya melalui pipeline prapemrosesan kami, dan menerapkan model regresi linier dan CNN yang terlatih. Pasien dalam database ini jauh lebih tua (rata-rata berusia 75 tahun) dibandingkan set data yang kami gunakan untuk pelatihan (rata-rata berusia 35 tahun), dan seperti yang diduga, model kami secara konsisten mengabaikan usia subjek sehat. Kegagalan ini memperjelas keterbatasan utama dari model machine learning: jika mereka tidak dilatih pada sampel populasi yang representatif, mereka mungkin saja berkinerja sangat buruk pada subjek yang tidak terlihat. Kurangnya transferabilitas dan data kesehatan non-stasioner mungkin merupakan salah satu hambatan yang paling serius dalam menggunakan machine learning dalam dunia kesehatan.
Namun, ketika membuat plot distribusi perbedaan antara usia subjek yang dilaporkan dan usia otak yang diprediksi dengan algoritme akhir, kami menemukan perbedaan rata-rata 6 tahun antara pasien penderita Alzheimer dan subjek sehat, sesuai dengan skor ROC-AUC 76%. Ini seakan mengonfirmasi bahwa otak subjek penderita Alzheimer entah bagaimana mengandung fitur yang berkorelasi dengan percepatan penuaan otak (Gaser et al., 2013), dan menguatkan hipotesis bahwa usia otak bisa menjadi biomarker baru untuk penyakit neurodegeneratif (Rafel et al., 2017, Koutsouleris et al., 2014, Coleet al., 2015).
Distribusi perbedaan antara usia subjek yang diprediksi dan yang dilaporkan rata-rata berbeda 6 tahun antara kontrol normal dan penyakit Alzheimer pada 489 pasien dari database ADNI.
Kesimpulan
Prediksi dengan machine learning bisa dimulai dari penerapan model linier sederhana dalam hitungan detik hingga pembangunan CNN kompleks yang terus dilatih selama berhari-hari. Dalam kedua model tersebut, interpretabilitas sangatlah penting, terutama dalam kedokteran di mana ia bisa mengarah pada penemuan biomarker atau mekanisme biologis baru.
Namun, praktisi harus berhati-hati ketika membangun dan menganalisis model-model ini. Bahkan ketika cross-validation distratifikasi dengan benar, kinerja luar biasa pada jumlah kasus penggunaan yang terbatas tidak menjamin kemampuan generalisasi yang baik. Terlebih jika algoritme tidak dilatih pada sampel yang representatif dari keseluruhan populasi, dan sering terjadi bias dalam praktik. Walaupun sulit dari sudut pandang organisasi dan peraturan, menginvestasikan waktu untuk mengumpulkan dan membersihkan set data adalah kunci keberhasilan project machine learning. Kami berharap artikel ini bisa memberi Anda gambaran tentang bagaimana AI bekerja ketika diterapkan pada data medis, dan dapat membantu Anda mengetahui kesalahan-kesalahan umum yang harus dihindari.
Ditulis oleh Fred Alcober dan Sandeep Gupta, atas nama tim TensorFlow
TensorFlow mengadakan Developer Summit tahunan yang ketiga dan terbesar di Sunnyvale, CA pada tanggal 6 dan 7 Maret 2019. Acara ini dihadiri oleh sekitar 1.000 penggemar machine learning dan disaksikan melalui streaming langsung oleh puluhan ribu lainnya.
Dalam tiga tahun sejak diluncurkan, TensorFlow telah matang sepenuhnya menjadi ekosistem machine learning (ML) end-to-end, dan membantu mendorong revolusi ML yang kita lihat terjadi di sekitar kita. TensorFlow telah didownload lebih dari 41 juta kali dan memiliki lebih dari 1.800 kontributor dari seluruh dunia. TensorFlow sebagai platform ML yang komprehensif membantu banyak praktisi, peneliti, dan pengguna baru untuk membangun solusi baru yang luar biasa untuk memecahkan masalah yang menantang dengan AI. Misalnya:
Pada developer summit, kami mengumumkan rilis alfa TensorFlow 2.0, yang menandai awal era TensorFlow 2.0 dan menghadirkan kemampuan kuat TensorFlow ke lebih banyak developer dan peneliti, membuatnya lebih mudah dibandingkan sebelumnya untuk membangun dan menggunakan ML. Kami juga mengumumkan kemitraan komunitas dan inisiatif edukasi baru dengan O’Reilly Media, Udacity, Deeplearning.ai di Coursera, dan fast.ai untuk membantu mendorong kolaborasi open source dan melatih generasi pengguna baru yang berikutnya. Selanjutnya, kami mendengarkan komunitas kami dan memperbarui dokumentasi developer seluruhnya dan mendesain ulang tensorflow.org untuk mempermudah dalam mendapatkan akses ke sumber daya dan informasi.
Selain update teknis dari tim TensorFlow, kami mendengarkan banyak pengguna kami dalam sesi perbincangan singkat yang menampilkan aplikasi-aplikasi luar biasa. Kami juga mengadakan ruang-peretas, sesi diskusi, dan lokakarya, di sini para peserta berinteraksi dengan tim TensorFlow, pertanyaannya akan dijawab, dipelajari dan dibagikan antar peserta.
Di bawah ini adalah highlight dan pengumuman penting dari event tersebut.
Mudah digunakan
Pada TensorFlow 2.0, fokus terbesar adalah membuat API lebih sederhana, lebih intuitif, dan natural untuk semua pengguna. Kami membuat komponen API terintegrasi lebih baik dengan tf.keras sebagai API tingkat tinggi yang disarankan untuk sebagian besar pengguna. Ini akan memungkinkan developer untuk beralih dari penyerapan data, transformasi, pembangunan model, pelatihan, dan penyimpanan, ke penerapan dengan jauh lebih mudah. Kami meluncurkan TensorFlow Datasets, kumpulan set data ML yang biasa digunakan dan siap digunakan dengan mudah di TensorFlow.
TensorFlow mempercepat penelitian mutakhir. Ini dimulai dengan fleksibilitas bagi peneliti untuk membuat prototipe ide-ide mereka dengan cepat, melakukan banyak percobaan, dan mengulangnya. Dengan fitur-fitur baru di TensorFlow 2.0 seperti eager execution secara default, alur kendali Python yang intuitif, optimalisasi otomatis kode eager dengan tf.function, dan pengiriman pesan error yang jauh lebih baik, kami menyempurnakan pengalaman pengembangan peneliti.
Para peneliti di NERSC di Lawrence Berkeley National Laboratory, Oak Ridge National Laboratory, dan NVIDIA memenangkan Gordon Bell Prize karena berhasil menskalakan aplikasi deep learning pada superkomputer Summit menggunakan TensorFlow untuk mempelajari efek cuaca ekstrem
Penelitian skala besar dalam machine learning juga membutuhkan komputasi paralel yang masif. Sejak tahun lalu, kami telah mempercepat pelatihan 8 V100s lebih dari 2x. Menggunakan Cloud TPU v2, kami telah meningkatkan kinerja sebesar 1,6x, dan dengan akselerasi Intel MKL kami berhasil meningkatkan kecepatan inferensi lebih dari 3 kali. Performa yang luar biasa adalah fokus utama dari TensorFlow 2.0, dan merupakan bagian inti dari kemajuan kami menuju rilis final.
Ekosistem TensorFlow mencakup kumpulan besar add-on yang sangat kuat yang memperluas TensorFlow dengan cara baru dan berguna. Beberapa add-on yang kami jelaskan meliputi:
TensorFlow Federated: library untuk pembelajaran gabungan guna memanfaatkan data desentralisasi yang diumumkan di event
TensorFlow Probability: library untuk menggunakan metode probabilistik dalam model ML untuk membuat prediksi yang berhubungan dengan ketidakpastian dan memasukkan pengetahuan domain
TensorFlow Agents: library untuk pembelajaran penguatan di TensorFlow 2.0
Kemajuan dalam pemrosesan urutan dan teks seperti dukungan untuk teks Unicode dan tipe RaggedTensor baru untuk data dengan bentuk yang tidak seragam
Mesh TensorFlow: library yang kuat bagi peneliti untuk membangun dan melatih model berskala sangat besar menggunakan teknik paralelisme
Sonnet dari DeepMind: sebuah contoh bagaimana lab riset bisa membangun library mereka sendiri di atas framework dapat diperluas dan modular dari TensorFlow
Produksi di platform apa pun dengan bahasa apa pun
Mengambil model dari riset hingga produksi selalu menjadi kekuatan inti dan fokus TensorFlow. Dengan menggunakan TensorFlow, Anda bisa menerapkan model di sejumlah platform seperti server, cloud, seluler dan perangkat canggih lainnya, browser, dan banyak platform Javascript yang lain.
TensorFlow Extended (TFX) menghadirkan pengelolaan seluruh siklus machine learning kepada pengguna kami. Ia memiliki beberapa library komponen dan kami mengumumkan fitur baru dalam komponen-komponen ini, tetapi yang lebih penting, dukungan orkestrasi yang baru menyatukan semuanya guna menyediakan pengguna dengan platform end-to-end terintegrasi (lihat contohnya di sini). Dengan dukungan untuk orkestrator Anda sendiri, komponen TFX terintegrasi dengan penyimpanan metadata. Penyimpanan ini melacak semua komponen yang berjalan, artefak yang masuk ke dalamnya, dan artefak yang dihasilkan. Ini mengaktifkan fitur-fitur canggih seperti pelacakan eksperimen, perbandingan model, dll. yang tentunya akan sangat meningkatkan kasus penggunaan produksi.
TensorFlow untuk Seluler & IoT
TensorFlow Lite, solusi kami untuk menjalankan model pada sistem seluler dan sistem tersemat, telah sukses secara global dan sekarang berjalan di lebih dari 2 miliar perangkat seluler — memimpin ML generasi berikutnya pada perangkat. Ia membantu pengguna menyelesaikan kasus penggunaan seperti pembuatan teks prediktif, klasifikasi gambar, deteksi objek, pengenalan audio, pengenalan text to speech dan speech to text, segmentasi video, dan deteksi edge serta banyak lagi yang lain.
Di event tersebut, kami mendengar bagaimana perusahaan internet global seperti Alibaba XianYuin dan Netease menggunakan TensorFlow Lite untuk memberikan pengguna pengalaman aplikasi yang lebih baik. Kami juga berbicara tentang kinerja ML TensorFlow Lite yang luar biasa dan bagaimana ia memberdayakan ML dalam aplikasi Google utama seperti Penelusuran, Asisten, Foto, dan Pixel.
Ada peningkatan besar pada kegunaan umum TensorFlow Lite dan fitur konversi model bersama dengan peningkatan fokus pada optimalisasi (mis. kuantisasi) dan kinerja (mis. Akselerasi GPU). Kami juga menunjukkan bagaimana TensorFlow Lite memberdayakan machine learning pada edge dan IoT di platform seperti Coral TPU dan papan mikrokontroler (MCU).
TensorFlow untuk JavaScript
Javascript adalah salah satu bahasa pemrograman yang paling banyak digunakan, dan TensorFlow.js menghadirkan ML ke developer JavaScript. Sejak diluncurkan, Javascript telah diadopsi secara luar biasa oleh komunitas dengan lebih dari 300.000 download dan 100 kontributor. Pada summit ini, kami mengumumkan TensorFlow.js versi 1.0. Fitur utama dari rilis ini meliputi peningkatan kinerja yang signifikan (MobileNet v1 lebih cepat 9 kali lipat di browser untuk inferensi dibandingkan dengan tahun lalu), banyak model baru untuk developer web yang dimasukkan ke dalam aplikasi, dan dukungan untuk lebih banyak platform tempat JavaScript berjalan. Perusahaan seperti AirBnb dan Uber adalah beberapa perusahaan yang menggunakan TensorFlow.js dalam lingkungan produksi dan kami melihat kasus penggunaan baru yang luar biasa muncul setiap harinya di galeri komunitas project TensorFlow.js.
Selain penerapan, TensorFlow.js bisa digunakan untuk membangun dan melatih model machine learning secara langsung dalam JavaScript baik di browser maupun dengan dukungan Node.js.
Swift untuk TensorFlow
Kami juga membagikan progress kami dengan paket Swift untuk TensorFlow terbaru. Dengan versi 0.2 yang baru saja dirilis, pengguna bisa melihat peningkatan kegunaan dan mencoba paradigma ML baru ini. Untuk mempermudah dalam memulai Swift, kami meluncurkan kursus machine learning baru menggunakan Swift untuk TensorFlow dengan fast.ai.
Komitmen terhadap pertumbuhan komunitas
Keberhasilan TensorFlow sebagian besar adalah berkat komunitas pengguna dan developernya yang luar biasa dan terus berkembang. Kami mengembangkan TensorFlow 2.0 dengan selalu memperhatikan masukan komunitas, melalui proses RFC terbuka, banyak Grup Minat Khusus baru, dan masukan serta pengujian komunitas Google Developer Expert kami.
Kami telah meluncurkan campaign baru #PoweredByTF dan menemukan project baru yang luar biasa sedang dibangun oleh pengguna kami. Kami mengumumkan program Google Summer of Code tempat siswa bisa mengajukan permohonan untuk bekerja dengan tim engineering TensorFlow untuk bersama-sama melakukan pengembangan langsung. Kami juga meluncurkan Powered by TF Challenge baru yang diselenggarakan di DevPost khusus bagi pengguna untuk membuat dan berbagi karya terbaru dan terbaik mereka dengan TensorFlow 2.0.
Sumber daya edukasi yang hebat adalah kunci untuk demokratisasi dan adopsi machine learning. Kami mengumumkan dua sumber daya edukasi baru untuk memudahkan pemula dan orang yang ingin belajar untuk memulai TensorFlow. Yang pertama adalah deeplearning.ai Course 1 — “Intro to TensorFlow for AI, ML and DL”, bagian dari seri TensorFlow: from Basics to Mastery yang diselenggarakan di Coursera. Yang kedua adalah Udacity Intro to TensorFlow for Deep Learning. Kedua kursus itu dirancang dengan mempertimbangkan developer serta tidak memerlukan pengalaman machine learning sebelumnya dan sudah tersedia sekarang.
Dan yang terakhir, kami mengumumkan TensorFlow World, konferensi seminggu yang didedikasikan untuk mendorong kolaborasi open source dan semua hal tentang TensorFlow. Konferensi ini, yang dibawakan bersama oleh O'Reilly Media dan TensorFlow, akan diadakan di Santa Clara, CA pada hari minggu 28 Oktober. Visi kami adalah menyatukan dunia TensorFlow yang menakjubkan dan memberikan kesempatan bagi orang-orang untuk terhubung satu sama lain. Panggilan proposal terbuka bagi peserta bila ingin mengirimkan dokumen project TensorFlow yang menarik atau bagi perusahaan bila ingin menunjukkan terobosan solusinya menggunakan TensorFlow, dan kami sangat menantikan Anda di sana.
Di Google, kami percaya aplikasi dan riset AI akan maju lebih cepat ketika semua pengguna memiliki akses ke fitur terbaik, sehingga memungkinkan semua orang untuk berpartisipasi. TensorFlow didedikasikan untuk membantu memberdayakan semua pengguna ML. Kami berkomitmen untuk bekerja sama dengan komunitas untuk membuat TensorFlow mudah bagi semua orang dan mengejar AI untuk kebaikan bersama!
Ditulis oleh tim Flutter
Tim Flutter mengadakan Mobile World Congress di Barcelona, pertemuan tahunan terbesar industri teknologi seluler. Satu tahun yang lalu, kami mengumumkan Flutter versi beta pertama di event ini, dan sejak saat itu Flutter tumbuh lebih cepat dari yang bisa kami bayangkan. Jadi sepertinya hal yang pas untuk merayakan peristiwa tahunan ini adalah dengan rilis update stabil pertama untuk Flutter.
Flutter 1.2
Flutter 1.2 adalah update fitur yang pertama untuk Flutter. Kami memfokuskan rilis ini pada beberapa bidang utama:
Peningkatan stabilitas, kinerja, dan kualitas framework inti.
Menyempurnakan sentuhan akhir visual dan fungsionalitas widget yang ada.
Perangkat berbasis web baru untuk developer yang membangun aplikasi Flutter.
Setelah meluncurkan Flutter 1.0, kami memfokuskan banyak energi dalam beberapa bulan terakhir ini untuk meningkatkan pengujian dan infrastruktur kode kami, membersihkan tumpukan permintaan pull, dan meningkatkan kinerja serta kualitas framework secara keseluruhan. Kami memiliki daftar lengkap permintaan ini di wiki Flutter untuk mereka yang tertarik pada detailnya. Pekerjaan ini juga meliputi dukungan yang lebih luas untuk bahasa UI baru seperti Swahili.
Kami terus melakukan penyempurnaan pada set widget Material dan Cupertino, untuk mendukung penggunaan Material yang lebih fleksibel dan terus mengusahakan kesesuaian pixel-perfect di iOS. Pekerjaan yang terakhir meliputi dukungan untuk mengedit teks floating cursor, serta menunjukkan perhatian terus-menerus pada detail kecil (misalnya, kami mengupdate cara kursor pengedit teks menggambar di iOS untuk representasi yang sebenarnya dari urutan animasi dan penggambaran). Kami menambahkan dukungan untuk rangkaian fungsi kemudahan animasi yang lebih luas, terinspirasi oleh karya Robert Penner. Kami juga menambahkan dukungan untuk event keyboard baru dan dukungan untuk mengarahkan kursor mouse, sebagai persiapan untuk dukungan yang lebih mendalam bagi sistem operasi desktop-class.
Tim plugin juga sibuk di Flutter 1.2, dengan pekerjaan yang sedang berlangsung untuk mendukung pembelian dalam apl, serta banyak perbaikan bug untuk pemutar video, webview, dan peta. Dan berkat permintaan pull yang dikontribusikan oleh developer dari Intuit, kami sekarang memiliki dukungan untuk Android App Bundles, format pengemasan baru yang membantu mengurangi ukuran aplikasi dan mengaktifkan fitur-fitur baru seperti pengiriman dinamis untuk aplikasi Android.
Terakhir, Flutter 1.2 menyertakan Dart 2.2 SDK, update yang membawa peningkatan kinerja signifikan untuk kode terkompilasi bersama dengan dukungan bahasa baru untuk menginisialisasi set. Untuk informasi selengkapnya tentang pekerjaan ini, Anda bisa membaca pemberitahuan Dart 2.2.
(Sebagai tambahan, beberapa orang mungkin bertanya-tanya mengapa rilis ini diberi nomor 1.2. Tujuan kami adalah meluncurkan rilis 1.x ke saluran 'beta' setiap bulannya, dan merilis update kira-kira setiap kuartal ke saluran 'stabil' yang siap untuk penggunaan produksi. Versi 1.1 bulan lalu adalah rilis beta, dan karenanya 1.2 adalah rilis stabil kami yang pertama.)
Fitur Baru untuk Developer Flutter
Developer seluler berasal dari berbagai latar belakang dan sering kali memilih fitur pemrograman dan editor yang berbeda. Flutter sendiri mendukung fitur yang beragam, termasuk dukungan kelas satu untuk Android Studio dan Visual Studio Code serta dukungan untuk membangun aplikasi dari baris perintah, jadi kami tahu bahwa kami membutuhkan fleksibilitas dalam cara kami mengekspos proses debug dan fitur inspeksi runtime.
Widget inspector, yang memungkinkan visualisasi dan eksplorasi hierarki pohon yang digunakan Flutter untuk rendering.
Tampilan timeline yang membantu Anda mendiagnosis aplikasi pada level bingkai-per-bingkai, mengidentifikasi pekerjaan rendering dan komputasi yang mungkin menyebabkan 'sendatan' animasi dalam aplikasi Anda.
Source-level debugger lengkap yang memungkinkan Anda menyusuri kode, menyetel breakpoint, dan menyelidiki tumpukan panggilan.
Tampilan logging yang menunjukkan aktivitas yang Anda log dari aplikasi serta kejadian jaringan, framework dan pembersihan sampah memori.
Kami berencana untuk berinvestasi lebih lanjut dalam perangkat berbasis web baru ini untuk developer Flutter serta Dart dan, seiring meningkatnya pengalaman berbasis web, kami berencana untuk membangun layanan ini langsung ke fitur seperti Visual Studio Code.
Apa yang berikutnya untuk Flutter?
Selain karya engineering, kami membutuhkan sedikit waktu setelah Flutter 1.0 untuk mendokumentasikan roadmap 2019, dan Anda akan melihat bahwa kami memiliki banyak pekerjaan di depan kami.
Fokus besar untuk 2019 adalah mengembangkan Flutter melampaui platform seluler. Di Flutter Live, kami mengumumkan project bernama sandi "Hummingbird", yang membawa Flutter ke web, dan kami berencana untuk membagikan pratinjau teknis dalam beberapa bulan mendatang. Selain itu, kami terus berupaya menghadirkan Flutter ke perangkat desktop-class; ini membutuhkan usaha baik pada tingkat framework seperti dijelaskan di atas, serta kemampuan untuk mengemas dan menerapkan aplikasi ke sistem operasi seperti Windows dan Mac, di mana kami berinvestasi melalui project Flutter Desktop Embedding.
Flutter Create: apa yang bisa Anda lakukan dengan 5K dari Dart?
Kami juga bersemangat meluncurkan Flutter Create, sebuah kontes yang menantang Anda untuk membangun sesuatu yang menarik, menginspirasi, dan indah dengan Flutter menggunakan lima kilobyte atau kurang dari kode Dart. 5K tidaklah banyak -- untuk file MP3 biasa, ini sekitar sepertiga detik musik -- tetapi kami bertaruh Anda bisa membuat kami takjub dengan apa yang dapat Anda capai di Flutter dengan kode yang sangat kecil tersebut.
Kontes ini berjalan hingga 7 April, jadi Anda punya waktu beberapa minggu untuk membangun sesuatu yang keren. Kami memiliki beberapa hadiah menarik, termasuk workstation developer iMac Pro komplet dengan prosesor 14-inti dan memori 128GB yang bernilai lebih dari $10.000! Kami akan mengumumkan pemenang di Google I/O, di mana kami akan mengadakan sejumlah pembicaraan Flutter, codelab, dan aktivitas.
TensorFlow 2.0 berfokus pada kemudahan penggunaan, dengan API bagi pemula dan lanjut untuk membuat model machine learning. Dalam artikel terbaru seperti Apa yang akan hadir di TensorFlow 2.0 dan Standardisasi Keras, kami memperkenalkan fitur baru dan arah yang dituju platform ini.
Hari ini di TensorFlow Developer Summit, kami mengumumkan bahwa Anda bisa mencoba pratinjau awal TensorFlow 2.0.
Cara memulai
Cara terbaik untuk mulai menggunakan TensorFlow 2.0 Alpha adalah dengan langsung membuka situs TensorFlow yang baru. Anda bisa menemukan panduan dan tutorial tahap awal untuk rilis alpha di tensorflow.org/alpha. Setiap tutorial yang Anda temukan di dokumen Alpha akan secara otomatis mendownload dan menginstal TensorFlow 2.0 Alpha, dan banyak lagi yang akan segera datang!
Kami sarankan memulai dengan contoh “Hello World” untuk level pemula dan lanjut, kemudian membaca panduan seperti Effective TensorFlow 2.0.
Contoh pemula menggunakan Keras Sequential API: cara paling sederhana untuk mulai menggunakan TensorFlow 2.0.
Contoh lanjut menunjukkan cara menulis forward pass secara imperatif, cara menulis training loop khusus menggunakan GradientTape, dan cara menggunakan tf.function untuk meng-compile kode Anda secara otomatis (hanya dengan satu baris!).
Yang terpenting, panduan tentang AutoGraph (yang memungkinkan Anda untuk mendapatkan semua kinerja dan portabilitas grafik, tanpa harus menulis kode level grafik).
Panduan tentang mengupgrade kode Anda (dengan skrip konversi yang memudahkan konversi kode TensorFlow 1.x menjadi 2.0)
Ada juga referensi API yang direvisi, jika Anda ingin melihat apa saja yang berubah (sekarang dengan simbol yang jauh lebih sedikit). Perhatikan bahwa, ketika TensorFlow 2.0 dalam status pengembangan aktif, dokumen 1.x akan menjadi halaman landing default di tensorflow.org. Jika Anda menjelajahi referensi API, pastikan Anda telah memilih versi TensorFlow yang tepat.
Penginstalan
Untuk menginstal rilis Alpha, kami sarankan untuk membuat lingkungan virtual baru dan menggunakan:
# CPU
pip install tensorflow==2.0.0-alpha0
# GPU
pip install tensorflow-gpu==2.0.0-alpha0
Yang terpenting, kami sarankan untuk melihat panduan penginstalan di tensorflow.org untuk detail selengkapnya (catatan: ini akan diupdate dalam waktu dekat, rilis ini adalah yang terbaru!). Anda juga bisa mencoba Alpha di Colab dengan menggunakan salah satu notebook baru di situs pada bagian TensorFlow 2.0 Alpha.
Fungsi, bukan sesi
Mari kita dalami bagaimana dua fitur 2.0 ini bekerja sama: Eksekusi eager dan @tf.function.
Salah satu perubahan terbesar adalah bahwa TensorFlow mengutamakan eager, yang berarti bahwa operasi dijalankan dengan segera setelah mereka dipanggil. Di TensorFlow 1.x, Anda mungkin familier dengan terlebih dahulu membuat grafik kemudian mengeksekusi potongan grafik melalui tf.Session.run(). TensorFlow 2.0 secara radikal menyederhanakan penggunaan TensorFlow — operasi hebat yang sama, sekarang jauh lebih mudah dipahami dan digunakan.
a = tf.constant([1, 2])
b = tf.constant([3, 4])
print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)
TensorFlow 2.0 menggunakan Keras sebagai pengalaman developer inti. Dengan 2.0, Anda bisa menggunakan Keras seperti yang Anda tahu, membangun model dengan Sequential API, kemudian menggunakan compile dan fit. Semua contoh tf.kerasyang familier dari tensorflow.org ini langsung berfungsi di versi 2.0.
Keras fit() berfungsi dengan baik untuk banyak kasus, tetapi bagi yang membutuhkan lebih banyak fleksibilitas tersedia banyak pilihan. Mari kita lihat training loop khusus yang ditulis dengan model TensorFlow 2.0 dari contoh ini:
# See https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
def train_one_step(model, optimizer, x, y):
with tf.GradientTape() as tape:
logits = model(x)
loss = compute_loss(y, logits)
grads = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
compute_accuracy(y, logits)
return loss
def train(model, optimizer):
train_ds = mnist_dataset()
step = 0
loss = 0.0
for x, y in train_ds:
step += 1
loss = train_one_step(model, optimizer, x, y)
if tf.equal(step % 10, 0):
tf.print('Step', step, ': loss',
loss, '; accuracy', compute_accuracy.result())
return step, loss, accuracy
Contoh ini menggunakan GradientTape model-Autograd dan menerapkan gradien Anda secara manual melalui optimizer. Ini bisa berguna untuk menulis training loop khusus dengan pengerjaan inti yang rumit seperti dalam pembelajaran penguatan, atau untuk riset (mempermudah pengerjaan ide baru Anda untuk optimizer yang lebih efisien).
Eksekusi eager juga berguna untuk proses debug dan pemantauan kode saat dijalankan, karena Anda bisa menggunakan debugger Python untuk memeriksa objek seperti variabel, layer, dan gradien. Kami menggunakan konstruksi Python seperti if, for, dan print() dalam training loop kami.
Setelah kode Anda berfungsi seperti yang diinginkan, Anda tentunya ingin mendapatkan efisiensi dan optimalisasi grafik. Untuk ini, Anda harus membungkus train dengan dekorator @tf.function. Autograph dibangun ke dalam tf.function, jadi Anda tidak perlu melakukan hal khusus untuk mendapatkan klausa if atau for yang berjalan dengan efisiensi grafik.
# See https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
@tf.function
def train(model, optimizer):
train_ds = mnist_dataset()
step = 0
loss = 0
accuracy = 0
for x, y in train_ds:
# as above, including the "if" and "print()"
return step
Kode ini akan bekerja persis sama dengan tanpa anotasi, tetapi dikompilasi ke dalam grafik yang bisa berjalan dengan mudah di GPU, TPU, atau disimpan ke dalam SavedModel untuk digunakan belakangan.
Bagian yang sangat menyenangkan dari hal ini adalah dengan membungkus train() di @tf.function, train_one_step(), compute_loss(), dan compute_accuracy() juga akan secara otomatis dikonversi. Anda juga bisa memilih untuk membungkus hanya sebagian dari komputasi di @tf.function untuk mendapatkan perilaku yang Anda inginkan.
Selain itu, Estimators sepenuhnya didukung di TensorFlow 2.0. Lihat tutorial baru untuk Boosted Trees dan Model Understanding.
Kami dengan senang hati menerima pengujian dan masukan!
Kami akan sangat menghargai setiap masukan ketika Anda mencoba versi terbaru dan mengupgrade model Anda! Silakan bergabung dengan kelompok pengguna testing@ TensorFlow dan silakan menghadiri TF 2.0 support stand-ups mingguan kami (Selasa, 14:00 PT).
Anda mungkin akan menemukan bug, masalah kinerja, dan banyak lagi, dan kami mendorong Anda untuk melaporkannya di pelacak masalah kami yang di-tag dengan label 2.0. Hal paling membantu yang bisa Anda lakukan adalah memasukkan contoh minimal serta lengkap yang mereproduksi bug secara tepat.
Segera hadir lebih banyak lagi
Untuk mendapatkan informasi terbaru tentang masalah yang diketahui dan pekerjaan pengembangan untuk TensorFlow 2.0, silakan lihat TF 2.0 Project Tracker di Github kami. Kami terus bekerja dan meningkatkan TensorFlow 2.0, sehingga Anda akan sering menjumpai upgrade ke paket nightly build. Agar jelas, ini adalah rilis pratinjau developer. Kami menghargai setiap masukan Anda!
Selain itu, jika Anda telah membuat sesuatu yang luar biasa dengan TF 2.0 — dari aplikasi seluler hingga project riset sampai instalasi seni — kami sangat ingin mendengarnya dan menandai karya Anda. Silakan beri tahu kami di sini.
Jika Anda telah mengembangkan contoh terbaru yang ingin Anda bagikan, silakan pertimbangkan untuk mengirimkan PR agar ditambahkan ke organisasi TensorFlow sebagai bagian dari tensorflow/examples/community.