Skip to content

nacme-aiml-bootcamp-2024-final-project-final-project created by GitHub Classroom

License

Notifications You must be signed in to change notification settings

NACME-AIML-2024/final-project-earthquake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date Open in Codespaces

Application of Autoencoders in Earthquake Engineering

National Action Council for Minorities in Engineering(NACME) Artificial Intelligence - Machine Learning (AIML) Intensive Summer Bootcamp at the University of Southern California

Sponsors

Apple NACME University of Southern California
Screenshot 2024-08-01 at 10 03 54 AM nacme_logo_blue_green(vector) USC logo

Developed by:

  • Darryn Dunn - Computer Science: Concentration in Video Game Development - University of the Pacific (UOP)
  • Eliska Peacock - Symbolic Systems: Concentration in Media & Communication - Stanford University
  • Johnny Williams - Computer Science: Concentration in Software Engineering - Louisiana State University (LSU)

Description

This project, led by Professor Chukwuebuka Nweke, focuses on estimating and predicting ground shaking intensity for earthquake engineering. The core of this research involves analyzing microtremor data collected from a site in Utah in order to gain a deeper understanding of the complex interactions between seismic waves and subsurface structures. The project involves identifying both observed and latent features from the horizontal-to-vertical spectral ratio (HVSR) curves. By mapping these features against one another, the research seeks to detail the relationship between subsurface geologic structures and seismic waves. The project utilizes autoencoders to help identify latent features that may contribute to understanding of seismic responses. The insights gained from this research could lead to more accurate seismic hazard assessments and better-informed earthquake engineering practices. By leveraging advanced data analysis techniques, it aims to enhance our ability to predict ground shaking intensity and improve the safety and resilience of structures in earthquake-prone areas.

Presentations

Slideshow

Poster

The Data

We are using a dataset provided by graduate students working on their PhD thesis. The data, collected in Utah, is organized into 3-hour segments, each containing an embedded 3-minute segment for frequency comparison.

Screenshot 2024-08-01 at 9 04 03 AM

To help us visualize the data initially, we plotted each 3-minute interval against the frequency for one three-hour segment. This provided a clear visual representation, allowing us to compare future data to ensure it resembles the original raw data.

Screenshot 2024-08-01 at 9 04 11 AM

The Autoencoder

An autoencoder consists of two main parts: an encoder and a decoder. The encoder compresses the input into a latent space representation, while the decoder reconstructs the original input from this compact representation.

Screenshot 2024-08-01 at 9 05 00 AM

Seen Features

Before plotting the output of the autoencoder, we needed to visualize all the observed features. These features included the area under the curve, peak amplitudes, peak frequencies, and other relevant metrics. By plotting these features, we could gain a comprehensive understanding of the data's characteristics. The following graph illustrates the peak amplitude, area under the curve, and peak frequencies, providing a detailed view of the key features we analyzed.

Screenshot 2024-08-01 at 9 04 26 AM

Examining the area under the curve made it challenging to pinpoint the exact times, as the details were not immediately clear. To address this, we created a separate, more focused graph specifically to highlight the area under the curve. This additional visualization enhances our understanding by providing a clearer, more detailed view of the time intervals, ensuring we can accurately interpret the data.

Screenshot 2024-08-01 at 9 04 37 AM

After plotting the area under the curve for a single three-hour interval, we realized that this approach might not capture the overall trends effectively. Therefore, we decided it would be more informative to calculate and represent the average area under the curve across all eight three-hour intervals we had. This approach allows us to gain a clearer understanding of the data's overall patterns and trends, facilitating better analysis and comparison.

Screenshot 2024-08-01 at 9 04 49 AM

Unseen Features

This graph represents the unseen features generated by the autoencoder. In this visualization, we are plotting one three-hour interval against three different latency features, providing insights into the output produced by the model. By analyzing these relationships, we can better understand how the autoencoder captures and represents the underlying patterns in the data. This comparative analysis allows us to assess the model's performance and explore how effectively it retains important information from the original dataset.

Screenshot 2024-08-01 at 9 50 12 AM

Now that we have visualized the features plotted against themselves, we can take the analysis a step further by plotting these unseen features against various observed features, including the area under the curve, peak amplitude, and peak frequency. This approach allows us to explore the relationships between the latent representations generated by the autoencoder and the known features in our dataset. By examining these correlations, we can gain deeper insights into how the autoencoder captures essential patterns in the data, facilitating a better understanding of the underlying dynamics and helping us validate the model's effectiveness.

Screenshot 2024-08-01 at 9 50 37 AM Screenshot 2024-08-01 at 9 52 44 AM Screenshot 2024-08-01 at 9 52 48 AM

Usage Instructions

  1. Fork this repo
  2. Change directories into your project
  3. On the command line, type the following:
    1. pip install numpy
    2. pip install pandas
    3. pip install torch
    4. pip install seaborn
    5. pip install matplotlib
    6. pip install scipy
    7. pip install scikit-learn
  4. Locate and open the file you downloaded from this repo

Questions

Please feel free to contact us

Darryn Dunn: [email protected]

Eliska Peacock: [email protected]

Johnny Williams: [email protected]

About

nacme-aiml-bootcamp-2024-final-project-final-project created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published