Giter Club home page Giter Club logo

unsupervised_deep_learning's Introduction

Demo codes (see the jupyter notebook) for:

GitHub last commit
GitHub stars GitHub followers GitHub forks GitHub watchers Twitter Follow

Unsupervised (Self-Supervised) Discrimination of Seismic Signals Using Deep Convolutional Autoencoders


You can get the paper from here:

Link 1:

https://ieeexplore.ieee.org/document/8704258

Link 2:

https://www.researchgate.net/publication/332814555_Unsupervised_Clustering_of_Seismic_Signals_Using_Deep_Convolutional_Autoencoders


You can get the training dataset from here:

https://drive.google.com/file/d/16itT_IZpM8w8KyFN8eL8iEfYX66Hk6Xb/view?usp=sharing


Reference:

Mousavi, S. M., W. Zhu, W. Ellsworth, G. Beroza (2019).                        
Unsupervised Clustering of Seismic Signals Using Deep Convolutional Autoencoders, 
IEEE Geoscience and Remote Sensing Letters, 1 - 5, doi:10.1109/LGRS.2019.2909218.                                                                                                       

BibTeX:

@article{mousavi2019unsupervised,
 title={Unsupervised Clustering of Seismic Signals Using Deep Convolutional Autoencoders},
 author={Mousavi, S Mostafa and Zhu, Weiqiang and Ellsworth, William and Beroza, Gregory},
 journal={IEEE Geoscience and Remote Sensing Letters},
 year={2019},
 publisher={IEEE}
}        

Abstract:

In this paper, we use deep neural networks for unsupervised clustering of seismic data.We perform the clustering in a feature space that is simultaneously optimized with the clustering assignment, resulting in learned feature representations that are effective for a specific clustering task. To demonstrate the application of this method in seismic signal processing, we design two different neural networks consisting primarily of full convolutional and pooling layers and apply them to: (1) discriminate waveforms recorded at different hypocentral distances and (2) discriminate waveforms with different first-motion polarities. Our method results in precisions that are comparable to those recently achieved by supervised methods, but without the need for labeled data, manual feature engineering, and large training sets. The applications we present here can be used in standard singlesite earthquake early warning systems to reduce the false alerts on an individual station level. However, the presented technique is general and suitable for a variety of applications including quality control of the labeling and classification results of other
supervised methods.


network architecture

Sampel data. a) and b) are two examples of the seismograms with different polarity of first motion. c) and d) are examples of local and teleseismic waveforms respectively while e) and f) are the associated Short-Time Fourier transforms.

network architecture

The architecture of fully convolutional autoencoder used in our study.

clustering results

Clustering results.

embeded features

Visualization of embeded features.

embeded features

embeded features

unsupervised_deep_learning's People

Contributors

smousavi05 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

unsupervised_deep_learning's Issues

loss function

Hello, Dr. Mousavi,

I'm trying to run your Jupyter notebook. In the notebook, the loss function to the fine-tuned model is

loss = model.train_on_batch(x=x[idx], y=[p[idx], x[idx]])

Is that correct? That resulted in the identical values for the first and last terms in the loss. Did I interpret this right?

Thanks.

Input Data Format

Hi,
I'm trying to convert time domain 3D seismic data (miniseed data) to the specific STFT format required by your model.
Is it possible to use scipy.signal.stft() for this conversion?
Since there are 3 streams of data (for E, N and Z), how would you use this function (and any possible merging operations) on this data to create a *.npy file in a format similar to your x.np.npy which you provided as an example?
Thanks

input and output to model.train_on_batch

Hi,
In you code, the input and outputs for the model are defined as below:
model = Model(inputs=encoder.input, outputs=[clustering_layer, autoencoder.output])

Then for fine-tuning step, we have:
model.train_on_batch(x=x[idx], y=[p[idx], x[idx]])

Shouldn't the x[idx]] in y=[p[idx], x[idx]] be the output of the autoencoder?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.